锁定老帖子 主题:关于java多线程一些心得
精华帖 (2) :: 良好帖 (1) :: 新手帖 (19) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-19
并不会死掉
1、主线程死掉之后 ,所有在主线程上启动的线程2、通过把线程加入ThreadGroup可以操作其他同组线程的生命 3、如果想在子线程中杀掉主线程,直接把主线程的Thread的传入子线程即可 4、要想关闭多线程程序,需要把当前所有的线程全部杀死才能关闭 5、各个线程互补影响~父子线程也不会有影响 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-05-19
千言万语汇总就那么几句话
When a Java Virtual Machine starts up, there is usually a single non-daemon thread (which typically calls the method named main of some designated class). The Java Virtual Machine continues to execute threads until either of the following occurs: * The exit method of class Runtime has been called and the security manager has permitted the exit operation to take place. * All threads that are not daemon threads have died, either by returning from the call to the run method or by throwing an exception that propagates beyond the run method. |
|
返回顶楼 | |
发表时间:2010-05-20
唉 我太落后了 几年了 很少写多线程方面的程序
|
|
返回顶楼 | |
发表时间:2010-05-20
楼主没有听说过守护线程吗?
|
|
返回顶楼 | |
发表时间:2010-05-20
知道守护线程呀......
|
|
返回顶楼 | |
发表时间:2010-05-20
线程到底有啥用啊,不就是同时执行多个任务么,不就是CPU分配时间片一会儿执行这个,一会儿执行那个,跟先把这个执行完,再执行那个有什么区别啊,谁能说下呢
|
|
返回顶楼 | |
发表时间:2010-05-20
呵呵 有些程序是需要同时处理多个通道的....
c++一般采用多进程的方式~~直接fork java的fork的话 会启动多个虚拟机进行执行~~所有采用多线程 多成成好像CPU利用率上面更好一些~~具体的就忘掉了 |
|
返回顶楼 | |
发表时间:2010-05-20
lirong1978 写道 线程到底有啥用啊,不就是同时执行多个任务么,不就是CPU分配时间片一会儿执行这个,一会儿执行那个,跟先把这个执行完,再执行那个有什么区别啊,谁能说下呢
因为并不是所有的线程都能很好的利用CPU,有可能有些操作会阻塞,如果顺序执行的话,那那个阻塞的方法岂不是拦着别的方法的执行,如果多线程的话,那个阻塞的方法只塞他自己的线程,别的线程照样跑。 经典的运用就是ServerSocket.accept(),一个线程一直等别人连接,另外可以起一些线程去处理连接到的socket,如果不用多线程,怎么处理的了?除非转换观念用NIO。 |
|
返回顶楼 | |
发表时间:2010-05-20
lirong1978 写道 线程到底有啥用啊,不就是同时执行多个任务么,不就是CPU分配时间片一会儿执行这个,一会儿执行那个,跟先把这个执行完,再执行那个有什么区别啊,谁能说下呢
你说的是并发,利用的单CPU轮询。现代意义的多线程是并行的,利用多CPU处理器,同时工作。 |
|
返回顶楼 | |
发表时间:2010-05-20
dyllove98 写道 呵呵 有些程序是需要同时处理多个通道的....
c++一般采用多进程的方式~~直接fork java的fork的话 会启动多个虚拟机进行执行~~所有采用多线程 多成成好像CPU利用率上面更好一些~~具体的就忘掉了 JDK1.2 之前采用所谓的Green Thread,不完全依赖于OS的线程调度。 后面的版本就不同了,直接利用OS或者是CPU线程调度,值得一提的是,Java线程和OS线程的映射比率是M:N(可能一对一,当M=N时)。 |
|
返回顶楼 | |