由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 多线程程序有什么好的调式方法?
相关主题
java multi-threading project怎么确定它没有deadlock, race condition?多线程的程序设计有什么好书推荐? (转载)
多线程 编程,process 和 thread 的一些问题。推荐一下C++多线程的书吧
c++多线程的工作面试一般会问哪些问题?C++多线程和硬件的关系
嵌入式怎么才能入门C++多线程的选择
多线程编程前景如何?痛恨Python的和当年痛恨Java的一个道理
c++下如何实现多线程?Python就是爽
怎样提高C#计算程序的performance?写thread safe程序现在也是程序员必须要掌握的了吧
请问一个多线程与volatile关键字的问题。大牛们怎么看这篇文章? C++ and Mobile Programming
相关话题的讨论汇总
话题: thread话题: pool话题: 多线程话题: task话题: java
进入Programming版参与讨论
1 (共1页)
h******k
发帖数: 388
1
比如说怎么发现线程死锁? 我现在用Java。
b*******s
发帖数: 5216
2
logging

【在 h******k 的大作中提到】
: 比如说怎么发现线程死锁? 我现在用Java。
g*******t
发帖数: 7704
3
print ....
echo ....
g*****g
发帖数: 34805
4
Take a thread dump and there are many tools that can find deadlock for you.
e.g. visualvm

【在 h******k 的大作中提到】
: 比如说怎么发现线程死锁? 我现在用Java。
z****e
发帖数: 54598
5
jstack PID > yourFileName
vi yourFileName
x****u
发帖数: 44466
6
解决线程或者内存问题的最重要手段就是,不要借助调试。

【在 h******k 的大作中提到】
: 比如说怎么发现线程死锁? 我现在用Java。
N******K
发帖数: 10202
7
意淫?

【在 x****u 的大作中提到】
: 解决线程或者内存问题的最重要手段就是,不要借助调试。
f******y
发帖数: 2971
8
写程序的时候线程之间尽量独立,有时宁愿多用一些内存。

【在 N******K 的大作中提到】
: 意淫?
x****u
发帖数: 44466
9
如果靠工具或者调试才能找到线程或者内存错误,你会漏掉百分之几十的。

【在 N******K 的大作中提到】
: 意淫?
h******k
发帖数: 388
10
大系统不可能所有程序都自己写。出了问题只有调试了。

【在 x****u 的大作中提到】
: 如果靠工具或者调试才能找到线程或者内存错误,你会漏掉百分之几十的。
相关主题
c++下如何实现多线程?多线程的程序设计有什么好书推荐? (转载)
怎样提高C#计算程序的performance?推荐一下C++多线程的书吧
请问一个多线程与volatile关键字的问题。C++多线程和硬件的关系
进入Programming版参与讨论
h******k
发帖数: 388
11
多谢bug和蜥蜴

【在 h******k 的大作中提到】
: 大系统不可能所有程序都自己写。出了问题只有调试了。
m*******l
发帖数: 12782
12
切,当年小菊用刮胡刀直接在硬盘上刻OS的时候,你没有见过而已

【在 N******K 的大作中提到】
: 意淫?
g*****g
发帖数: 34805
13
你写过吗?有多少同时在线用户?纯扯蛋。除非你用node之类单线程的架构,否则是不
可避免的。

【在 x****u 的大作中提到】
: 如果靠工具或者调试才能找到线程或者内存错误,你会漏掉百分之几十的。
x****u
发帖数: 44466
14
99.99的代码都不应该设计线程同步问题,不然就是设计问题。

【在 h******k 的大作中提到】
: 大系统不可能所有程序都自己写。出了问题只有调试了。
x****u
发帖数: 44466
15
你让几百个工程师一起写多线程互斥,恭喜你,丰田的HR就在门外等着呢。

【在 g*****g 的大作中提到】
: 你写过吗?有多少同时在线用户?纯扯蛋。除非你用node之类单线程的架构,否则是不
: 可避免的。

b*******s
发帖数: 5216
16
丰田的问题不是多线程问题,是没常识

【在 x****u 的大作中提到】
: 你让几百个工程师一起写多线程互斥,恭喜你,丰田的HR就在门外等着呢。
x****u
发帖数: 44466
17
让人人都碰线程同步,比人人写全局变量还麻烦。

【在 b*******s 的大作中提到】
: 丰田的问题不是多线程问题,是没常识
b*******s
发帖数: 5216
18
你这个是虚构的场景吧

【在 x****u 的大作中提到】
: 让人人都碰线程同步,比人人写全局变量还麻烦。
x****u
发帖数: 44466
19
不是虚构,CPP的最大特点就是一个蚁穴可以毁掉大坝

【在 b*******s 的大作中提到】
: 你这个是虚构的场景吧
k**********g
发帖数: 989
20

The correct approach is to use actor model.
It may not have good performance, but any other multicore approach will be
10x more difficult than using actor model.
The fundamental constructs inside an actor model framework:
1. thread-safe queue (preferably lock-free or obstruction-free)
2. thread pool
3. worker pool (each worker runs on one thread on the thread pool)
4. task queue / task pool (a collection of ready-to-run tasks)
(remark: it is called task pool because it is not necessarily a "queue",
i.e. not required to be FIFO)
5. lambda wrapper
a data structure that encapsulates a piece of work; this data structure
(or a pointer reference to it) will be the data type of the task pool.
6. exception wrapper
allows an exception thrown from the lambda wrapper to be "shipped over"
to a different thread.
7. object lifetime utilities such as reference-counted shared pointer, weak
pointer, atomics etc.
8. some "correctness sugar" (similar to syntactic sugar, but whose purpose
is to make it easier to write correct code) such as single assignment
variables
may have a few other stuff i forgot...

【在 x****u 的大作中提到】
: 99.99的代码都不应该设计线程同步问题,不然就是设计问题。
相关主题
C++多线程的选择写thread safe程序现在也是程序员必须要掌握的了吧
痛恨Python的和当年痛恨Java的一个道理大牛们怎么看这篇文章? C++ and Mobile Programming
Python就是爽C++多线程写网络服务是不是快退出舞台了?
进入Programming版参与讨论
h******k
发帖数: 388
21
看上去很复杂,哪本书有介绍?

",

【在 k**********g 的大作中提到】
:
: The correct approach is to use actor model.
: It may not have good performance, but any other multicore approach will be
: 10x more difficult than using actor model.
: The fundamental constructs inside an actor model framework:
: 1. thread-safe queue (preferably lock-free or obstruction-free)
: 2. thread pool
: 3. worker pool (each worker runs on one thread on the thread pool)
: 4. task queue / task pool (a collection of ready-to-run tasks)
: (remark: it is called task pool because it is not necessarily a "queue",

x****u
发帖数: 44466
22
基本上就是这么回事。
比如微软的DCOM,从20年前开始就是和多线程,多进程,数据同步死磕,所以为了降低
工作难度,基本上效率不重要的领域都是用STA实现的,让message queue同步数据,只
要不违反COM原则就啥问题也没有。
违反原则的地方也很容易通过review发现。

",

【在 k**********g 的大作中提到】
:
: The correct approach is to use actor model.
: It may not have good performance, but any other multicore approach will be
: 10x more difficult than using actor model.
: The fundamental constructs inside an actor model framework:
: 1. thread-safe queue (preferably lock-free or obstruction-free)
: 2. thread pool
: 3. worker pool (each worker runs on one thread on the thread pool)
: 4. task queue / task pool (a collection of ready-to-run tasks)
: (remark: it is called task pool because it is not necessarily a "queue",

h******k
发帖数: 388
23
丰田应该改用Java。彻底解决全局变量问题:~)

【在 x****u 的大作中提到】
: 让人人都碰线程同步,比人人写全局变量还麻烦。
x****u
发帖数: 44466
24
刹车时正好碰上GC,然后就悲剧了。。。

【在 h******k 的大作中提到】
: 丰田应该改用Java。彻底解决全局变量问题:~)
b*******s
发帖数: 5216
25
能做到硬实时响应吗?

【在 h******k 的大作中提到】
: 丰田应该改用Java。彻底解决全局变量问题:~)
h******k
发帖数: 388
26
不是有real-time Java吗?

【在 x****u 的大作中提到】
: 刹车时正好碰上GC,然后就悲剧了。。。
x****u
发帖数: 44466
27
日本人最不喜欢搞行为艺术了。

【在 h******k 的大作中提到】
: 不是有real-time Java吗?
b*******s
发帖数: 5216
28
运行时决定类型的语言先天不足,c++现在也不鼓励那种继承的写法了

【在 h******k 的大作中提到】
: 不是有real-time Java吗?
N******K
发帖数: 10202
29
c++现在也不鼓励那种继承的写法了 —— 什么意思?

【在 b*******s 的大作中提到】
: 运行时决定类型的语言先天不足,c++现在也不鼓励那种继承的写法了
d****i
发帖数: 4809
30
所有的实时系统,只有C可以meet实时要求,连C++都不行,很多嵌入式系统上面的编译
器只支持C,C++只有限的用于一些上层的应用等等,这个我们是有过教训的。所以
Linus炮轰那些想把C++引入内核编程的话是对的,更不用说隔着一层虚拟机的Java了。
以前嵌入式杂志有个关于嵌入式编程所用语言的调查,C占了75%,C++占了20%,剩下5%
是汇编。

【在 h******k 的大作中提到】
: 不是有real-time Java吗?
相关主题
OOP里面的Object其实是actor多线程 编程,process 和 thread 的一些问题。
我来说说go的目标对手吧c++多线程的工作面试一般会问哪些问题?
java multi-threading project怎么确定它没有deadlock, race condition?嵌入式怎么才能入门
进入Programming版参与讨论
z****e
发帖数: 54598
31
real time jvm可以用在导弹拦截上
其实也没有必要那么折腾,直接修改源代码
把gc规则调整成显式调用就行了
就是说那样的话,可能就不能叫java了
不过java这个东西本身就是一套eco,很多东西本来就不是那么严格地遵循定义
比如android

【在 x****u 的大作中提到】
: 日本人最不喜欢搞行为艺术了。
z****e
发帖数: 54598
32
主要是很多real time需要硬件自身的支持
pc上大多数cpu到ms阶段就吃不消了,误差就很大,无论用什么写
那如果硬件都要改的话,那用一个统一软件平台就没有太多意义

5%

【在 d****i 的大作中提到】
: 所有的实时系统,只有C可以meet实时要求,连C++都不行,很多嵌入式系统上面的编译
: 器只支持C,C++只有限的用于一些上层的应用等等,这个我们是有过教训的。所以
: Linus炮轰那些想把C++引入内核编程的话是对的,更不用说隔着一层虚拟机的Java了。
: 以前嵌入式杂志有个关于嵌入式编程所用语言的调查,C占了75%,C++占了20%,剩下5%
: 是汇编。

N******K
发帖数: 10202
33
c和c++功能上的区别 也就是成员变量了吧
c++的成员变量 是系统状态 这个东西有问题
如果多个类的成员变量都是指向同一个类的指针 会有内存问题
不如用全局变量
以前的嵌入式内存太少 功能简单 c足够了

5%

【在 d****i 的大作中提到】
: 所有的实时系统,只有C可以meet实时要求,连C++都不行,很多嵌入式系统上面的编译
: 器只支持C,C++只有限的用于一些上层的应用等等,这个我们是有过教训的。所以
: Linus炮轰那些想把C++引入内核编程的话是对的,更不用说隔着一层虚拟机的Java了。
: 以前嵌入式杂志有个关于嵌入式编程所用语言的调查,C占了75%,C++占了20%,剩下5%
: 是汇编。

d****i
发帖数: 4809
34
这个是,所以在嵌入式系统上,不同于桌面和现在的手机系统比较容易统一平台, RTOS
五花八门,大大小小大概有几百种,当然代表性的就那么十几种。

【在 z****e 的大作中提到】
: 主要是很多real time需要硬件自身的支持
: pc上大多数cpu到ms阶段就吃不消了,误差就很大,无论用什么写
: 那如果硬件都要改的话,那用一个统一软件平台就没有太多意义
:
: 5%

N******K
发帖数: 10202
35
real time系统有很多硬件中断 pc的硬件中断也就键盘什么的没几个

【在 z****e 的大作中提到】
: 主要是很多real time需要硬件自身的支持
: pc上大多数cpu到ms阶段就吃不消了,误差就很大,无论用什么写
: 那如果硬件都要改的话,那用一个统一软件平台就没有太多意义
:
: 5%

k**********g
发帖数: 989
36

The key to safety is to require one of these: isolation, immutability, or
idempotence.
Functional programming enforces immutability at the language level.
Database and networking folks prefers idempotence.
DCOM didn't enforce anything. (It only "disables" things.) Therefore, in
terms of multithreading, it's kind of a joke.

【在 x****u 的大作中提到】
: 基本上就是这么回事。
: 比如微软的DCOM,从20年前开始就是和多线程,多进程,数据同步死磕,所以为了降低
: 工作难度,基本上效率不重要的领域都是用STA实现的,让message queue同步数据,只
: 要不违反COM原则就啥问题也没有。
: 违反原则的地方也很容易通过review发现。
:
: ",

x****u
发帖数: 44466
37
现在任何有GUI的系统,都有可以和DCOM能很简单实现映射的模型架构存在。无知无畏
的回去玩FP吧。

【在 k**********g 的大作中提到】
:
: The key to safety is to require one of these: isolation, immutability, or
: idempotence.
: Functional programming enforces immutability at the language level.
: Database and networking folks prefers idempotence.
: DCOM didn't enforce anything. (It only "disables" things.) Therefore, in
: terms of multithreading, it's kind of a joke.

x****o
发帖数: 21566
38
稍后车就被collected 了

【在 x****u 的大作中提到】
: 刹车时正好碰上GC,然后就悲剧了。。。
d******e
发帖数: 2265
39
做复杂的server 端没有多线程?
你没见过deadlock什么不等于不存在。只是你的程序run的次数是在太少,不足以repro.
有写bug几年一见,除了看dump否则根本没法抓到。

【在 x****u 的大作中提到】
: 基本上就是这么回事。
: 比如微软的DCOM,从20年前开始就是和多线程,多进程,数据同步死磕,所以为了降低
: 工作难度,基本上效率不重要的领域都是用STA实现的,让message queue同步数据,只
: 要不违反COM原则就啥问题也没有。
: 违反原则的地方也很容易通过review发现。
:
: ",

x****u
发帖数: 44466
40
你这是小孩常见想法

repro.

【在 d******e 的大作中提到】
: 做复杂的server 端没有多线程?
: 你没见过deadlock什么不等于不存在。只是你的程序run的次数是在太少,不足以repro.
: 有写bug几年一见,除了看dump否则根本没法抓到。

相关主题
嵌入式怎么才能入门怎样提高C#计算程序的performance?
多线程编程前景如何?请问一个多线程与volatile关键字的问题。
c++下如何实现多线程?多线程的程序设计有什么好书推荐? (转载)
进入Programming版参与讨论
d******e
发帖数: 2265
41
这是你家软软的标准做法。你才investigate多少waston dumps?估计一个都没有。
老子当年修的bugs 1/10强是deadlock或者多线程相关的。

【在 x****u 的大作中提到】
: 你这是小孩常见想法
:
: repro.

p*****8
发帖数: 11
42
Mark.

【在 g*****g 的大作中提到】
: Take a thread dump and there are many tools that can find deadlock for you.
: e.g. visualvm

1 (共1页)
进入Programming版参与讨论
相关主题
大牛们怎么看这篇文章? C++ and Mobile Programming多线程编程前景如何?
C++多线程写网络服务是不是快退出舞台了?c++下如何实现多线程?
OOP里面的Object其实是actor怎样提高C#计算程序的performance?
我来说说go的目标对手吧请问一个多线程与volatile关键字的问题。
java multi-threading project怎么确定它没有deadlock, race condition?多线程的程序设计有什么好书推荐? (转载)
多线程 编程,process 和 thread 的一些问题。推荐一下C++多线程的书吧
c++多线程的工作面试一般会问哪些问题?C++多线程和硬件的关系
嵌入式怎么才能入门C++多线程的选择
相关话题的讨论汇总
话题: thread话题: pool话题: 多线程话题: task话题: java