c*********e 发帖数: 16335 | 1 怎么测试?有没有专业软件测试?
看起来,java multi-threading project很容易有deadlock, race condition;而且很
难测试出来。大家的java multi-threading project,写出来之后怎么测试deadlock,
race condition的? |
w**z 发帖数: 8232 | 2 load test and code review
,
【在 c*********e 的大作中提到】 : 怎么测试?有没有专业软件测试? : 看起来,java multi-threading project很容易有deadlock, race condition;而且很 : 难测试出来。大家的java multi-threading project,写出来之后怎么测试deadlock, : race condition的?
|
c*********e 发帖数: 16335 | 3 能不能给个具体例子,和网站tutor?
【在 w**z 的大作中提到】 : load test and code review : : ,
|
f*******t 发帖数: 7549 | 4 deadlock: 看stack dump
race condition: 读log |
p*****2 发帖数: 21240 | 5 明白为什么node好了!
,
【在 c*********e 的大作中提到】 : 怎么测试?有没有专业软件测试? : 看起来,java multi-threading project很容易有deadlock, race condition;而且很 : 难测试出来。大家的java multi-threading project,写出来之后怎么测试deadlock, : race condition的?
|
c*********e 发帖数: 16335 | 6 node就是i/o non-blocking async,每个process之间没啥关联。没有java multi-
threading的生产者-消费者模式,中间没有个blockingqueue来连接生产者和消费者。
从设计思路上看,node.js的模式还是太简单,java里面的花样很多,各种class,
interface.
【在 p*****2 的大作中提到】 : 明白为什么node好了! : : ,
|
c*********e 发帖数: 16335 | 7 不需要特别的测试软件吗?
【在 f*******t 的大作中提到】 : deadlock: 看stack dump : race condition: 读log
|
d*******r 发帖数: 3299 | 8 没有 reliable & generic 的算法来测试吧, 记得以前学 OS 时候是这么说的 |
p*****2 发帖数: 21240 | 9
可以借助redis呀。
【在 c*********e 的大作中提到】 : node就是i/o non-blocking async,每个process之间没啥关联。没有java multi- : threading的生产者-消费者模式,中间没有个blockingqueue来连接生产者和消费者。 : 从设计思路上看,node.js的模式还是太简单,java里面的花样很多,各种class, : interface.
|
w**z 发帖数: 8232 | 10 是 web 吗? try jmeter, 或者自己写client.
【在 c*********e 的大作中提到】 : 能不能给个具体例子,和网站tutor?
|
|
|
f*******t 发帖数: 7549 | 11 没啥软件能检测这些,感觉都是凭经验看
【在 c*********e 的大作中提到】 : 不需要特别的测试软件吗?
|
z*******3 发帖数: 13709 | 12 thread dump
没有办法,所以无数的frameworks才在解决这些问题
多线程搞到最后就会觉得vert.x真好
汲取百家之长 |
z*******3 发帖数: 13709 | 13 顺便说一下
java程序员现在几乎都不手写multiple threading了
你的方式有些过于落伍了
至少是java.utl.concurrency
实际工作中,也多数是tomcat, spring, ejb这些framework
随便一个都可以解决并发的问题
或者fp那些immutable,也是一种方法
ror等也都是如此,不过都只能对付tcp,http
等到你要用udp的时候,vert.x就显示出其价值来了 |
g*****g 发帖数: 34805 | 14 做个thread dump, visualVM 就可以查有没有死锁。至于race condition是没啥软件能
查。
【在 f*******t 的大作中提到】 : 没啥软件能检测这些,感觉都是凭经验看
|
w**z 发帖数: 8232 | 15 不用thread dump, 直接联到jmx 端口,有个查Dead lock 的button.
【在 g*****g 的大作中提到】 : 做个thread dump, visualVM 就可以查有没有死锁。至于race condition是没啥软件能 : 查。
|
c*****e 发帖数: 3226 | 16 Erlang, 也解决了99% deadlock 的问题。
【在 p*****2 的大作中提到】 : 明白为什么node好了! : : ,
|
c*****e 发帖数: 3226 | 17 jprofile
,
【在 c*********e 的大作中提到】 : 怎么测试?有没有专业软件测试? : 看起来,java multi-threading project很容易有deadlock, race condition;而且很 : 难测试出来。大家的java multi-threading project,写出来之后怎么测试deadlock, : race condition的?
|
i**i 发帖数: 1500 | 18 deadlock只要能重复出来就好弄。
race condition你能确定是这个原因已经是高手了。多线程相互无关还行,要有资源共
享,还没共享的统一策略,你就good luck吧。 |
r***s 发帖数: 737 | 19 死锁好办,每次acquire lock不成功的话走一下waiting graph 看有没有环就是了。
有现成工具。不满意的话自己用jvmti写一个
http://stackoverflow.com/questions/8126711/get-deadlock-detecti
race condition比较难找。一般是用function test来找。
,
【在 c*********e 的大作中提到】 : 怎么测试?有没有专业软件测试? : 看起来,java multi-threading project很容易有deadlock, race condition;而且很 : 难测试出来。大家的java multi-threading project,写出来之后怎么测试deadlock, : race condition的?
|
r***s 发帖数: 737 | 20 各有各的用处,node能用的地方functional language一般都好用。
stateful processing里面用node或者functional 都比较难。
【在 p*****2 的大作中提到】 : 明白为什么node好了! : : ,
|
|
|
r***s 发帖数: 737 | 21 你可以说封装的更好了,用起来比以前更方便
但是离不用写还远得很。尤其做infrastructure的
很难只用别人写好的。
【在 z*******3 的大作中提到】 : 顺便说一下 : java程序员现在几乎都不手写multiple threading了 : 你的方式有些过于落伍了 : 至少是java.utl.concurrency : 实际工作中,也多数是tomcat, spring, ejb这些framework : 随便一个都可以解决并发的问题 : 或者fp那些immutable,也是一种方法 : ror等也都是如此,不过都只能对付tcp,http : 等到你要用udp的时候,vert.x就显示出其价值来了
|
w**z 发帖数: 8232 | 22 put the code under load and reproduce the problem. 然后就对有问题的code 做
review. 我们有一次, 几个人对有问题的code 看了几天。
【在 r***s 的大作中提到】 : 死锁好办,每次acquire lock不成功的话走一下waiting graph 看有没有环就是了。 : 有现成工具。不满意的话自己用jvmti写一个 : http://stackoverflow.com/questions/8126711/get-deadlock-detecti : race condition比较难找。一般是用function test来找。 : : ,
|
b***e 发帖数: 1419 | 23 这...node.js的语义和java没有什么区别,用event-driven模式也可以写出dead lock
。任何java里有的问题node.js里同样有,只不过是用不同的形式表达出来。
【在 p*****2 的大作中提到】 : 明白为什么node好了! : : ,
|
p*****2 发帖数: 21240 | 24 node是single thread的
lock
【在 b***e 的大作中提到】 : 这...node.js的语义和java没有什么区别,用event-driven模式也可以写出dead lock : 。任何java里有的问题node.js里同样有,只不过是用不同的形式表达出来。
|
c*********e 发帖数: 16335 | 25 那你们还看java concurrency in practice干什么?
【在 z*******3 的大作中提到】 : 顺便说一下 : java程序员现在几乎都不手写multiple threading了 : 你的方式有些过于落伍了 : 至少是java.utl.concurrency : 实际工作中,也多数是tomcat, spring, ejb这些framework : 随便一个都可以解决并发的问题 : 或者fp那些immutable,也是一种方法 : ror等也都是如此,不过都只能对付tcp,http : 等到你要用udp的时候,vert.x就显示出其价值来了
|
c*********e 发帖数: 16335 | 26 怎么做thread dump?用这个?
kill -3 PID
【在 g*****g 的大作中提到】 : 做个thread dump, visualVM 就可以查有没有死锁。至于race condition是没啥软件能 : 查。
|
c*********e 发帖数: 16335 | 27 多线程相互无关,那还不如单线程async来得快。
【在 i**i 的大作中提到】 : deadlock只要能重复出来就好弄。 : race condition你能确定是这个原因已经是高手了。多线程相互无关还行,要有资源共 : 享,还没共享的统一策略,你就good luck吧。
|
w**z 发帖数: 8232 | 28 这四种方法我都用过, 从易到难:
visual VM
jconsole has plugin
kill -3
jstack
【在 c*********e 的大作中提到】 : 怎么做thread dump?用这个? : kill -3 PID
|
i**i 发帖数: 1500 | 29 你懂个P.
【在 c*********e 的大作中提到】 : 多线程相互无关,那还不如单线程async来得快。
|
c*********e 发帖数: 16335 | 30 我一个同事,用multi-threading做一个c# 课题,出现deadlock,半天都搞不定,最后
用single thread async做,交差了。
你懂个P.
【在 i**i 的大作中提到】 : 你懂个P.
|
|
|
c*********e 发帖数: 16335 | 31 请说明原因,谢谢。
【在 i**i 的大作中提到】 : 你懂个P.
|
p*****2 发帖数: 21240 | 32 这就是node的优势呀
不会有race condition 不需要lock 也就没有deadlock
【在 c*********e 的大作中提到】 : 我一个同事,用multi-threading做一个c# 课题,出现deadlock,半天都搞不定,最后 : 用single thread async做,交差了。 : : 你懂个P.
|
c*********e 发帖数: 16335 | 33 但是,node.js有interface,abstract class, dto之类的吗?
【在 p*****2 的大作中提到】 : 这就是node的优势呀 : 不会有race condition 不需要lock 也就没有deadlock
|
p*****2 发帖数: 21240 | 34 prototypal inheritance
【在 c*********e 的大作中提到】 : 但是,node.js有interface,abstract class, dto之类的吗?
|
l**********n 发帖数: 8443 | 35 node讲的是module.
【在 c*********e 的大作中提到】 : 但是,node.js有interface,abstract class, dto之类的吗?
|
z*******3 发帖数: 13709 | 36 人类在进步
你非要看十年前的教材,谁也拿你没办法
【在 c*********e 的大作中提到】 : 那你们还看java concurrency in practice干什么?
|
a***n 发帖数: 538 | 37 如果有state machine的话,race condition 还是会有的。纯functional的好一点。
【在 p*****2 的大作中提到】 : 这就是node的优势呀 : 不会有race condition 不需要lock 也就没有deadlock
|
p*****2 发帖数: 21240 | 38 为什么会有呀?
【在 a***n 的大作中提到】 : 如果有state machine的话,race condition 还是会有的。纯functional的好一点。
|
a***n 发帖数: 538 | 39 外部请求返回顺序不确定?
【在 p*****2 的大作中提到】 : 为什么会有呀?
|
p*****2 发帖数: 21240 | 40 那跟race conditon有什么关系呀
【在 a***n 的大作中提到】 : 外部请求返回顺序不确定?
|
|
|
c*********e 发帖数: 16335 | 41 node的module就是plugin,到处去找第三方插件。缺啥补啥。没一个系统的架构,象
interface,abstract class。
【在 l**********n 的大作中提到】 : node讲的是module.
|
p*****2 发帖数: 21240 | 42 你说的这些是系统架构?
【在 c*********e 的大作中提到】 : node的module就是plugin,到处去找第三方插件。缺啥补啥。没一个系统的架构,象 : interface,abstract class。
|
c*********e 发帖数: 16335 | 43 java, c#里面,会用rational rose之类的东西,先把各个class之间的关系理顺,然后
该用interface/abstract class的,就用。
javascript, node.js里面,没这个东西,完全就是到处找一些github上的开源代码来
干事情。和java,c#完全不同的套路。
【在 p*****2 的大作中提到】 : 你说的这些是系统架构?
|
p*****2 发帖数: 21240 | 44 那又如何
【在 c*********e 的大作中提到】 : java, c#里面,会用rational rose之类的东西,先把各个class之间的关系理顺,然后 : 该用interface/abstract class的,就用。 : javascript, node.js里面,没这个东西,完全就是到处找一些github上的开源代码来 : 干事情。和java,c#完全不同的套路。
|
l**********n 发帖数: 8443 | 45 interface是oop
【在 c*********e 的大作中提到】 : java, c#里面,会用rational rose之类的东西,先把各个class之间的关系理顺,然后 : 该用interface/abstract class的,就用。 : javascript, node.js里面,没这个东西,完全就是到处找一些github上的开源代码来 : 干事情。和java,c#完全不同的套路。
|
l**********n 发帖数: 8443 | 46 es6有class和inheritance.
【在 l**********n 的大作中提到】 : interface是oop
|
p*****2 发帖数: 21240 | 47 haskell也有type class吧
【在 l**********n 的大作中提到】 : interface是oop
|
A*******e 发帖数: 2419 | 48 十年就过时了?刚开始看,晕。
【在 z*******3 的大作中提到】 : 人类在进步 : 你非要看十年前的教材,谁也拿你没办法
|
c*********e 发帖数: 16335 | 49 我已经快看完了,确实很有帮助,至少让我知道改怎么写multi-threading code了。但
是,怎么测试race condition, deadlock, 书里没怎么讲。
-------------- |
A*******e 发帖数: 2419 | 50 你看了多久?做练习吗?
【在 c*********e 的大作中提到】 : 我已经快看完了,确实很有帮助,至少让我知道改怎么写multi-threading code了。但 : 是,怎么测试race condition, deadlock, 书里没怎么讲。 : --------------
|
|
|
c*********e 发帖数: 16335 | 51 书里没有练习。
【在 A*******e 的大作中提到】 : 你看了多久?做练习吗?
|
A*******e 发帖数: 2419 | 52 不做练习/项目,心里没底啊。
【在 c*********e 的大作中提到】 : 书里没有练习。
|
c*********e 发帖数: 16335 | 53 要找个真的项目练手。这玩艺,一定要真干才能学到。
【在 A*******e 的大作中提到】 : 不做练习/项目,心里没底啊。
|
p*****2 发帖数: 21240 | 54 真干就能学到?
【在 c*********e 的大作中提到】 : 要找个真的项目练手。这玩艺,一定要真干才能学到。
|
p**********g 发帖数: 187 | |