Java主线程等待所有子线程执行完毕在执行,其实在我们的工作中经常的用到,比如说主线程要返回一个响应用户的值,但这个值得赋值过程是由过个子线程来完成的(模拟一个实际开发的情景),所以主线程必须等待子线程执行完毕,再响应用户;否则,响应用户的是一个无意义的值。
那么如何确保所有的子线程执行完毕了。一般的有如下方法:
1 让主线程等待,或着睡眠几分钟。用Thread.sleep()或者TimeUnit.SECONDS.sleep(5);
2 使用Thread的join()等待所有的子线程执行完毕,...
分类:
编程语言 时间:
2014-11-22 00:50:19
阅读次数:
257
之前看到别人写的多线程方法,自己用得不知所以然,感觉很强大同时自己又很好奇。Java的多线程是高阶必须学习的知识,现在把网络上查询到的理论知识特别整理一下。
简单介绍
创建线程有两种方式:继承Thread或实现Runnable。Thread实现了Runnable接口,提供了一个空的run()方法,所以不论是继承Thread还是实现Runnable,都要有自己的run()方法。...
分类:
编程语言 时间:
2014-11-21 16:23:17
阅读次数:
218
在java中继承Thread,线程启动有两中方法:start()和run()。下面简单介绍一下两者的区别。start():启动一个线程,此时线程处于就绪状态,然后调用Thread对象的run()方法;不能多次启动一个线程。在main方法执行结束后,由于start()方法创建的线程没有运行结束,因此主...
分类:
编程语言 时间:
2014-11-21 12:22:55
阅读次数:
167
之前在前面已经介绍了Socket通信的一些基本原理,以及如何让客户端与服务器端建立通信,和实现通信的一些基本步骤(包括首先使得服务器端与客户端建立连接,建立连接之后,服务器端开始侦听客户端的请求,侦听到客户端的请求之后,通过输入输出流处理相关信息实现通信,最后通信完毕结束通信等一系列流程)。
但是之前只是单个客户端与服务器进行通信,而我们实际应用中单个客户端的情况几乎不存在,都是多个客户端同时与服务器进行交互(这里同时交互就会出现并发性的问题,对于并发性的问题暂时还不是很懂,只知道有这个概念),那就需要服...
分类:
编程语言 时间:
2014-11-17 17:52:20
阅读次数:
145
复制原理
1. master将数据写到binlog中。
2. slave开启两个线程I/O thread和SQL thread。
3. slave的I/O thread线程连接到master,读取master上的binlog文件名称及binlog的position位置。
4. slave通过I/O thread接收master的变更信息,写入到relay log(中继日志...
分类:
数据库 时间:
2014-11-11 12:40:15
阅读次数:
260
Runtime#addShutDownHook方法是给虚拟机增加一个虚拟机关闭时的调用钩子,在虚拟机关闭的时候调用这些钩子线程。还是非常有用的一个方法,最直接的用法就是监控了,因为其是在虚拟机临关闭时被调用,所以天生可以记录虚拟机关闭这件事情,及其相关的信息;再就是清理资源什么的,也可以做一个钩子线程,这样就不用再应用中为这些清理资源的操作找合适的位置了;
下面先翻译一下这个方法的Java do...
分类:
编程语言 时间:
2014-11-08 12:05:12
阅读次数:
193
线程话题太大,又都是些坑,不知从哪方面讲起,所以,想一出是一出了。 不管怎样,我们从开始使用D,不管有没有用线程,其实它已经帮我们做了一个最完整的线程执行处理:Application.Run. 这行App.Run,在dpr,想来各位都经常能够看到,如果跟踪下去,我们就会发现,它其实就是一个最完整.....
分类:
编程语言 时间:
2014-11-02 23:53:29
阅读次数:
301