w*s 发帖数: 7227 | |
O*******d 发帖数: 20343 | 2 要注意race condition, 还有deadlock |
O*******d 发帖数: 20343 | 3 deadlock是多线程最头痛的问题。 一般试验不能发现。只有在特殊情况下才会显现出
来。 |
j*******d 发帖数: 8834 | 4 首先要搞清楚是什么样的OS,什么样的threading
有些OS只support user land threading, 那你的app里像disk io这些东东就要小心了
,还有就是threading本身是什么样的,non-preemptive 还是preemptive, preemptive
你要考虑thread-safe,reentrant..etc non-preemptive你要考虑func 主动context
switch的时候的reentrant。。。etc
还有就是怎么样manage你的thread pool,假设你不想create thread on demand的话。
【在 w*s 的大作中提到】 : google了一圈也没找到什么。。。
|
B********e 发帖数: 1062 | 5 个人愚见:
1) use multiple threads as less as possible.
2) share data among threads as less as possible. It's possible to share
nothing between threads. If data has to be shared, use a middle man.
3) protect itself as much as possible.
【在 w*s 的大作中提到】 : google了一圈也没找到什么。。。
|
h**********c 发帖数: 4120 | 6 说不好瞎说
1.所有的锁必须timeout,
2.所有线程的锁必须在scheduler的一个周期内释放
当然需要实时系统,比如qnx |
r****9 发帖数: 16 | 7 Read the book "Java concurrency in practice" |