Redian新闻
>
现在到底工作有多少需要Java的多线程呢?
avatar
现在到底工作有多少需要Java的多线程呢?# Java - 爪哇娇娃
p*2
1
有时间折腾多线程是不是还不如学点别的?比如STM,AKKA这些。多线程看看理论是不
是就可以了?
avatar
f*t
2
我觉得与其花时间折腾那些乱七八糟的东西,不如写点有用的代码
avatar
p*2
3

我觉得要先学习才能写有用的代码吧?也就是说要学习实用的技术,而不是Java多线程
现在很少用到的。

【在 f*******t 的大作中提到】
: 我觉得与其花时间折腾那些乱七八糟的东西,不如写点有用的代码
avatar
p*3
4

还是有点用的,这两周尽整java多线程了,一个message queue 的polling,routing。
一个monitoring程序。

【在 p*****2 的大作中提到】
: 有时间折腾多线程是不是还不如学点别的?比如STM,AKKA这些。多线程看看理论是不
: 是就可以了?

avatar
f*t
5
要说实用,有啥能跟java multithreading比……

【在 p*****2 的大作中提到】
:
: 我觉得要先学习才能写有用的代码吧?也就是说要学习实用的技术,而不是Java多线程
: 现在很少用到的。

avatar
p*2
6

legacy code吗?现在新的代码很少用java的多线程了。因为多线程编程太难了。很多
大牛都不敢保证出bug。就跟以前C指针是的,有了GC,没人愿意回去了。现在多线程那
么多framework,没必要往回走,除非performance上有特殊要求。就跟high
performance的现在还用C/C++一样。但是会越来越少了。

【在 p*****3 的大作中提到】
:
: 还是有点用的,这两周尽整java多线程了,一个message queue 的polling,routing。
: 一个monitoring程序。

avatar
p*3
7

新改写的小service.
java有哪些framework呢,感觉java的executionService那套就很好用了。其实java的
multithread已经感觉比c++,c的那些好用太多了。
特别复杂的比如condition variable那套东西如果有封装好的倒是蛮方便。不过大部分
情况感觉简单的多线程也犯不着用其他什么framework吧

【在 p*****2 的大作中提到】
:
: legacy code吗?现在新的代码很少用java的多线程了。因为多线程编程太难了。很多
: 大牛都不敢保证出bug。就跟以前C指针是的,有了GC,没人愿意回去了。现在多线程那
: 么多framework,没必要往回走,除非performance上有特殊要求。就跟high
: performance的现在还用C/C++一样。但是会越来越少了。

avatar
b*i
8
多线程很简单啊,不就是semaphore什么吗?

【在 p*****2 的大作中提到】
: 有时间折腾多线程是不是还不如学点别的?比如STM,AKKA这些。多线程看看理论是不
: 是就可以了?

avatar
p*2
9

akka

【在 p*****3 的大作中提到】
:
: 新改写的小service.
: java有哪些framework呢,感觉java的executionService那套就很好用了。其实java的
: multithread已经感觉比c++,c的那些好用太多了。
: 特别复杂的比如condition variable那套东西如果有封装好的倒是蛮方便。不过大部分
: 情况感觉简单的多线程也犯不着用其他什么framework吧

avatar
p*2
10

膜拜

【在 b***i 的大作中提到】
: 多线程很简单啊,不就是semaphore什么吗?
avatar
p*2
11

其实说多线程有点不是很确切,现在主要是concurrency, 这块趋势是event-driven和
async, Java支持的就不好了。

【在 p*****3 的大作中提到】
:
: 新改写的小service.
: java有哪些framework呢,感觉java的executionService那套就很好用了。其实java的
: multithread已经感觉比c++,c的那些好用太多了。
: 特别复杂的比如condition variable那套东西如果有封装好的倒是蛮方便。不过大部分
: 情况感觉简单的多线程也犯不着用其他什么framework吧

avatar
p*3
12

同膜拜

【在 b***i 的大作中提到】
: 多线程很简单啊,不就是semaphore什么吗?
avatar
d*i
14
Java的多线程和OS Native thread的多线程还是很不一样的。就像不同的OS, Win32
thread和pthread也完全不一样,然后Win32和pthread和RTOS上的thread(task)也完全
不一样,虽然概念上总是有些相通之处。

【在 b***i 的大作中提到】
: 多线程很简单啊,不就是semaphore什么吗?
avatar
p*3
15

java的多线程也是建立在OS上吧,比如说如果在windows上跑,最后总是会调用win32
API, 还是说java有什么牛逼的能自己实现一套多线程的东西

【在 d****i 的大作中提到】
: Java的多线程和OS Native thread的多线程还是很不一样的。就像不同的OS, Win32
: thread和pthread也完全不一样,然后Win32和pthread和RTOS上的thread(task)也完全
: 不一样,虽然概念上总是有些相通之处。

avatar
d*i
16
记得以前好像是Java的多线程是完全独立于OS的线程的,现在的Java的多线程的实现实
际上底层调用的就是OS native thread,所以应该是OS thread的一层wrapper。

【在 p*****3 的大作中提到】
:
: java的多线程也是建立在OS上吧,比如说如果在windows上跑,最后总是会调用win32
: API, 还是说java有什么牛逼的能自己实现一套多线程的东西

avatar
p*2
17

Java自己实现了memory model了吧?

【在 p*****3 的大作中提到】
:
: java的多线程也是建立在OS上吧,比如说如果在windows上跑,最后总是会调用win32
: API, 还是说java有什么牛逼的能自己实现一套多线程的东西

avatar
m*t
18
我C#写过一般规模的async + multithreading的service,Java没有相关经验,最近打
算把这个service用Clojure重写一遍,也在考虑相关的思路,打算尝试下Core.async,
多线程方面打算学prismatic,直接用java.util.concurrent或者简单包装下。
这个是Prismatic他们的一篇博客,讲他们用的技术:
http://blog.getprismatic.com/blog/2012/4/5/software-engineering
相关部分摘要:
While we make heavy use of the core of Clojure, we don't use its concurrency
primitives (atoms, refs, STM, etc.) because a function like pmap doesn't
have enough fine grained control for our needs. We opt instead to build our
own concurrency abstractions in Clojure on top of the outstanding java.util.
concurrent package.

【在 p*****2 的大作中提到】
:
: Java自己实现了memory model了吧?

avatar
p*2
19

concurrency
our
util.
你直接上STM就行了吧?

【在 m******t 的大作中提到】
: 我C#写过一般规模的async + multithreading的service,Java没有相关经验,最近打
: 算把这个service用Clojure重写一遍,也在考虑相关的思路,打算尝试下Core.async,
: 多线程方面打算学prismatic,直接用java.util.concurrent或者简单包装下。
: 这个是Prismatic他们的一篇博客,讲他们用的技术:
: http://blog.getprismatic.com/blog/2012/4/5/software-engineering
: 相关部分摘要:
: While we make heavy use of the core of Clojure, we don't use its concurrency
: primitives (atoms, refs, STM, etc.) because a function like pmap doesn't
: have enough fine grained control for our needs. We opt instead to build our
: own concurrency abstractions in Clojure on top of the outstanding java.util.

avatar
m*t
20
那倒是,我们这个规模小,估计STM也没问题。我的Clojure也才刚入门,什么都想尝试
下。当然项目要正式开始的话,肯定也要写几个小程序load test下的。

【在 p*****2 的大作中提到】
:
: concurrency
: our
: util.
: 你直接上STM就行了吧?

avatar
p*2
21

你们大概什么规模呢?大量用异步的话,性能应该不是啥问题。

【在 m******t 的大作中提到】
: 那倒是,我们这个规模小,估计STM也没问题。我的Clojure也才刚入门,什么都想尝试
: 下。当然项目要正式开始的话,肯定也要写几个小程序load test下的。

avatar
m*t
22
C#那个写的比较早,乱七八糟的小于1万行代码,基于IAsyncResult和callback那套,
很类似于现在的Javascript node.js那一坨。性能倒是真好,在一个vmware的虚拟机里
面跑windows 2003,轻松4、5百并行,压力测试时轻松上千。就是逻辑比较绕,debug
很困难,特别是写exception handling写的吐血。

【在 p*****2 的大作中提到】
:
: 你们大概什么规模呢?大量用异步的话,性能应该不是啥问题。

avatar
p*2
23

debug
我感觉JVM上异步做的都不是很好。你先用用,回来给来个总结吧。

【在 m******t 的大作中提到】
: C#那个写的比较早,乱七八糟的小于1万行代码,基于IAsyncResult和callback那套,
: 很类似于现在的Javascript node.js那一坨。性能倒是真好,在一个vmware的虚拟机里
: 面跑windows 2003,轻松4、5百并行,压力测试时轻松上千。就是逻辑比较绕,debug
: 很困难,特别是写exception handling写的吐血。

avatar
m*t
24
嗯,互相学习吧。

【在 p*****2 的大作中提到】
:
: debug
: 我感觉JVM上异步做的都不是很好。你先用用,回来给来个总结吧。

avatar
o*i
25
有非视频的推荐么?
看视频太慢太费时间了

【在 p*****2 的大作中提到】
:
: debug
: 我感觉JVM上异步做的都不是很好。你先用用,回来给来个总结吧。

avatar
b*i
28
干啥的?数据库?

debug

【在 m******t 的大作中提到】
: C#那个写的比较早,乱七八糟的小于1万行代码,基于IAsyncResult和callback那套,
: 很类似于现在的Javascript node.js那一坨。性能倒是真好,在一个vmware的虚拟机里
: 面跑windows 2003,轻松4、5百并行,压力测试时轻松上千。就是逻辑比较绕,debug
: 很困难,特别是写exception handling写的吐血。

avatar
T*g
30
写过portal 的表示太tm 有用了

【在 p*****2 的大作中提到】
: 有时间折腾多线程是不是还不如学点别的?比如STM,AKKA这些。多线程看看理论是不
: 是就可以了?

avatar
T*g
31
正解

【在 d****i 的大作中提到】
: 记得以前好像是Java的多线程是完全独立于OS的线程的,现在的Java的多线程的实现实
: 际上底层调用的就是OS native thread,所以应该是OS thread的一层wrapper。

avatar
T*g
33
刚好看到http://nnwq.iteye.com/blog/1976773

【在 p*****2 的大作中提到】
: 有时间折腾多线程是不是还不如学点别的?比如STM,AKKA这些。多线程看看理论是不
: 是就可以了?

avatar
g*g
34
这哥们不是一般的弱呀。像他这种单机,统计个session数目哪有什么难度,
一个AtomicInteger就解决了。

【在 T*********g 的大作中提到】
: 刚好看到http://nnwq.iteye.com/blog/1976773
avatar
p*2
35

大牛还真看了呀?

【在 g*****g 的大作中提到】
: 这哥们不是一般的弱呀。像他这种单机,统计个session数目哪有什么难度,
: 一个AtomicInteger就解决了。

avatar
z*e
37
一个双核cpu如果不多线程岂不是很浪费?
多core多cpu的server并不少见

【在 p*****2 的大作中提到】
: 有时间折腾多线程是不是还不如学点别的?比如STM,AKKA这些。多线程看看理论是不
: 是就可以了?

avatar
z*e
38
只要避开并发操作,都不难
实际上单线程和异步也是用来规避并发用的

【在 b***i 的大作中提到】
: 多线程很简单啊,不就是semaphore什么吗?
avatar
z*e
39
event-driven是flow时代提出来的概念,广泛应用于工作流中
工作流后来经常被批,ibm在各个银行等机构里面大量采用工作流这种event driven模式
async各个语言都实现了,下一步是让web service开始广泛支持这个
不过自己实现一个也不难,只要明白这是做什么,

【在 p*****2 的大作中提到】
:
: 大牛还真看了呀?

avatar
x*d
40
zkss? web service support async, what is it? why it has anything to do with
language?

模式

【在 z****e 的大作中提到】
: event-driven是flow时代提出来的概念,广泛应用于工作流中
: 工作流后来经常被批,ibm在各个银行等机构里面大量采用工作流这种event driven模式
: async各个语言都实现了,下一步是让web service开始广泛支持这个
: 不过自己实现一个也不难,只要明白这是做什么,

avatar
b*i
41
我也实在想不通并发有什么难的。要不哪位给各题目,让我们设计一下。

with

【在 x****d 的大作中提到】
: zkss? web service support async, what is it? why it has anything to do with
: language?
:
: 模式

avatar
z*e
42
其实ws,async和language三者本身没有必然联系
但是实现async的ws还是比较缺少规范,现在ws一般都是sync的
所以异步的还需要一些规范,目前比较缺这种规范,所以很多时候都是自己定义自己实现
现在就在讨论,怎么支持这种规范,因为传统的ws已经做得没啥可做的了
就像soa也已经相对成熟,没啥可搞了,就开始搞event driven soa

with

【在 x****d 的大作中提到】
: zkss? web service support async, what is it? why it has anything to do with
: language?
:
: 模式

avatar
z*e
43
资源并发访问导致冲突会死锁

【在 b***i 的大作中提到】
: 我也实在想不通并发有什么难的。要不哪位给各题目,让我们设计一下。
:
: with

avatar
b*i
44
这不是多线程实现的基本注意事项之一吗。解决方案有按顺序锁的,还有如果可以锁就
锁,不能就不锁的方法,再不行就看log。多调试。锁啊锁就习惯了。

【在 z****e 的大作中提到】
: 资源并发访问导致冲突会死锁
avatar
p*2
45

大牛,AKKA,STM跟多线程不矛盾

【在 z****e 的大作中提到】
: 一个双核cpu如果不多线程岂不是很浪费?
: 多core多cpu的server并不少见

avatar
z*e
46
哈,原来你说的是java的多线程

【在 p*****2 的大作中提到】
:
: 大牛,AKKA,STM跟多线程不矛盾

avatar
z*e
47
是,但是还是比较麻烦,自己实现多线程往往会有这种问题

【在 b***i 的大作中提到】
: 这不是多线程实现的基本注意事项之一吗。解决方案有按顺序锁的,还有如果可以锁就
: 锁,不能就不锁的方法,再不行就看log。多调试。锁啊锁就习惯了。

avatar
T*g
48
呵呵 他是不太行。 我转的目的是为了回答楼主的问题。多线程在工作中还是需要的。

【在 g*****g 的大作中提到】
: 这哥们不是一般的弱呀。像他这种单机,统计个session数目哪有什么难度,
: 一个AtomicInteger就解决了。

avatar
p*2
49

可是我说的是Java多线程呀。

【在 T*********g 的大作中提到】
: 呵呵 他是不太行。 我转的目的是为了回答楼主的问题。多线程在工作中还是需要的。
avatar
b*i
50
最近有些新技术,我来讨论一下STM是怎么回事?
它能解决哪种locking解决不了的东西?wiki上的例子我愣没看懂

【在 p*****2 的大作中提到】
:
: 可是我说的是Java多线程呀。

avatar
p*2
51
concurrency
avatar
b*i
52
这么说吧,AKKA能解决的问题,包含STM能解决的问题吗?
比如,同时修改两个Map,就是STM wiki的例子。atomic,这个在AKKA里面能解决吗?

【在 p*****2 的大作中提到】
: concurrency
avatar
p*2
53

AKKA跟STM两个东西,不过都是为了解决并行问题的。
AKKA讲究的是immutability。

【在 b***i 的大作中提到】
: 这么说吧,AKKA能解决的问题,包含STM能解决的问题吗?
: 比如,同时修改两个Map,就是STM wiki的例子。atomic,这个在AKKA里面能解决吗?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。