You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
From Doug Lea’s abstract: “Creating components based on concurrent and parallel algorithms and data structures often requires more attention to “engineering” issues not seen with most other libraries. Components created in the “obvious” way sometimes turn out to be wrong, to perform poorly, or are unusable in most applications, because the abstractions in which they are expressed are leaky, imprec
Go Concurrency Patterns Rob Pike Google Video This talk was presented at Google I/O in June 2012. Watch the talk on YouTube 2 Introduction 3 Concurrency features in Go People seemed fascinated by the concurrency features of Go when the language was first announced. Questions: Why is concurrency supported? What is concurrency, anyway? Where does the idea come from? What is it good for? How do I use
STMはソフトウェアトランザクショナルメモリの略です。 ↓とりあえずwikipedia http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%A1%E3%83%A2%E3%83%AA 日本でSTMの話題を検索すると「楽観的ロックでしょ?」といった発言を見かける事が多く、確かに実用的な手法の多くはロックベースだったりしていますが、正直なところロックベースな手法のSTMはデータベースでのトランザクションと似ているフシがあったりしてデータベースに詳しい人からするとそれほど驚くような手法ではない事が多いのです。その
LMAX is a new retail financial trading platform. As a result it has to process many trades with low latency. The system is built on the JVM platform and centers on a Business Logic Processor that can handle 6 million orders per second on a single thread. The Business Logic Processor runs entirely in-memory using event sourcing. The Business Logic Processor is surrounded by Disruptors - a concurren
本日社内向けのTechTalkにて、並列・並行プログラミングに関する話を行いました。 昨今、プログラムの並列化はなくてはならないものとなっています。しかし、そのプログラミング環境は依然としてロックを用いたものが主流です。今回の発表の主張を端的に申し上げますと、 “Locks must go!” ということになります。並列プログラミングに銀の弾丸はありません。しかし、ロックは別の何らかの安全性を確保したプログラミングモデルで置き換えられなければいけません。そうでなければ、再現しにくいバグに苦しめられ、終電を逃す日々と決別することはできないでしょう。また、ロックによるプログラミングの抱える本質的問題にも言及しています。 この界隈の最新の動向として、去年OOPSLA’10にて発表されたConcurrent Revisionsについての解説も行なっております。また、弊社研究開発において、先日Con
Russ Cox http://swtch.com/~rsc/talks/ Second International Plan 9 Workshop December 2007 Introduction Two popular camps for designing concurrent programs. Threads with locks Birrell, “An introduction to programming with threads” Top-level select loops with events Ousterhout, “Why threads are a bad idea (for most purposes)” Should we use threads or events? Andrew Birrell: threads. John Ousterhout:
Software engineering, programming methodology, languages, verification, general technology, publication culture, and more By describing a poorly conceived hypothetical experiment, last week’s article described the “Professor Smith syndrome” consisting of four risks that threaten the validity of empirical software engineering experiments relying on students in a course: Professor Smith Risk 1: pos
Software engineering, programming methodology, languages, verification, general technology, publication culture, and more EiffelStudio 6.8, released last month, contains the first official implementation of the SCOOP programming model for concurrent programming. This is an important milestone; let me try to explain why. Concurrency challenging us Concurrency is the principal stumbling block in the
スレッド化で「普通は」気をつけるべきこと 「高木浩光@自宅の日記」より. ギャー、ここも杜撰だった。(モニタリング用のコードとはいえ。) int connectionTriedCount = 0; int handshakeSucceededCount = 0; int extractionSucceededCount = 0; connectionTriedCount++; handshakeSucceededCount++; extractionSucceededCount++; java.util.concurrent.atomic.AtomicInteger を使ってみよう。 import java.util.concurrent.atomic.AtomicInteger; ... AtomicInteger connectionTriedCount = new AtomicInt
If you want to make programs go faster on parallel hardware, then you need some kind of concurrency. Right? In this article I’d like to explain why the above statement is false, and why we should be very clear about the distinction between concurrency and parallelism. I should stress that these ideas are not mine, and are by no means new, but I think it’s important that this issue is well unders
QtConcurrent::run() runs a function in a worker thread. It returns a QFuture, which is then used to synchronize with the result: QString foo(); QFuture<QString> f = QtConcurrent::run(foo); ... QString string = f.result() Calling f.result() will block the current thread until foo() has returned. The QFuture template argument must match the return type of foo(). If the function you want to run takes
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く