新しいものを表示

予想に反しておもしろい記事だった><

マイクロソフト"心臓部"で見た「AI革命劇」の本質 世界一アツい企業の内部は静寂に包まれていた | 特集 | 東洋経済オンライン toyokeizai.net/articles/-/7460

能登半島地震 隈研吾さん 輪島市の復興計画のアドバイザーに就任 | NHK | 令和6年能登半島地震
www3.nhk.or.jp/news/html/20240

[B! 技術] 世界初の「走行中にEVをワイヤレス充電できる高速道路」がまもなく誕生
b.hatena.ne.jp/entry/s/gigazin
"...合計400メートルほどの区間に設置が行われ、大型トラックを用いたテストが行われることになっています。"

Interstate Highway System - Wikipedia
en.wikipedia.org/wiki/Intersta
"Length 48,756 mi[a] (78,465 km)"

orange さんがブースト

パフォーマンスじゃなくて,単に await できるロック開放待ち機能を持ってるからって話だと思います.

ハードウェアの都合で排他処理が多数発生する一方でスレッドプールな感じの処理があまり必要ないような場面であれば、昔ながらのThreadクラスとlock(Monitor)を使うべき?><
(そういう場面ではlockとSemaphoreSlimの性能差の影響がawaitでの最適な(?)スレッドプールの扱いによる性能向上よりも大きくなる可能性が高い?><)

awaitは処理の中でスレッドが変わっちゃう事がある(待つ時にスレッドを占有しない)ので、同一スレッドから呼び出すのが前提のlockは使えないっぽい><
なんでスレッドを占有しないかというと、(一般的に考えて)たぶんその方がだいたいの場面でパフォーマンスがいいから><
で、代わりにSemaphoreSlim が使える><
でも、SemaphoreSlimはlockと比べるとパフォーマンスよくない><

難しい><;

マルチスレッドで高速なC#を書くためのロック戦略 # - Qiita
qiita.com/tadokoro/items/28b36

orange さんがブースト

そういう場面では SemaphoreSlim を使うらしいよ

orange さんがブースト

await lock(lockobject)に相当する部分、最近作ってる特定のプロセスの音だけ録音するライブラリのデモアプリにも出てくるけど、スレッドつくって頭でMonitor.TryEnterをループで回すってしてる><

これ作るために試行錯誤してわかったけど、排他処理を複数同時にしなきゃいけないような場面でasync/awaitを使うと大混乱に陥るので、そういう時はasync/await使わないほうがいい!><;

await lock(lockobject)に相当する部分、最近作ってる特定のプロセスの音だけ録音するライブラリのデモアプリにも出てくるけど、スレッドつくって頭でMonitor.TryEnterをループで回すってしてる><

ていうかasync/awaitを使う方が圧倒的に性能がよくなる場面が圧倒的に多いと思うけど、(少なくともハードウェアの都合が出る場面では)わかりやすさとか排他処理は、昔ながらのThreadクラスを使って書く方が圧倒的に簡単では感><
ウェブアプリとか事務処理とか? は、もしかしたらasync/awaitの方が使いやすいのかもしれないけど><

await lockがあったらめちゃくちゃ便利そうだけど、オレンジはそれ以前にasync/awaitを自分のコードで率先して使ったこと無い><(使わなきゃ使えないライブラリの時だけ使う)
音系のアプリを作ること多いのでマルチスレッドじゃないと困る場面は多々発生するけど、全部Threadクラス使って自分で制御してる><

orange さんがブースト

C#で

```
await lock(someObj)
{
// ....
}
```
みたいに書けたらいいなぁ、と思ってたんだけどやっぱり似たようなことを考える人はいるようで

Async thread lock ("await lock") · Issue #983 · dotnet/csharplang · GitHub github.com/dotnet/csharplang/i

古いものを表示
:realtek:

思考の /dev/null