![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
TomcatLikeYou
这个作者很懒,什么都没留下…
展开
-
JAVA计算线程耗时
java开发中,多线程是非常常用的技术,如何计算一个新的线程,从START到TERMINATED , 即从线程的启动到终止一整个过程所消耗的时间,本文提供了一种算法。 首先,像给普通方法计算执行方法一样,在主线程中计算时间是绝对不行的。主线程启动完新线程之后,就继续往下执行,而不会等待新线程的执行,这也是多线程的意义,不多解释。下面是反例。long startTime = System.c...原创 2018-05-30 19:06:59 · 5240 阅读 · 0 评论 -
ReentrantLock和synchronized的区别
Java中,实现线程同步手段有很多,加锁是其中常用的一种,synchronized关键字是最常用的手段之一。而ReentrantLock则可以完全替代其作用,并且可以更灵活的使用锁机制,但同时,对编程水平的要求也稍微高一点,由于编程水平原因,出现bug概率提高。 总而言之,API文档这么描述ReentrantLock:一个可重入的互斥锁 Lock,它具有与使用 synchronize...原创 2018-06-02 18:22:41 · 2382 阅读 · 1 评论 -
使用Condition类来代替 Object 监视器方法(wait,notify)
java.util.concurrent.locks 包中,规定了三个接口,来代替synchronized和Object的监视器方法,wait,notify。即帮助我们更加灵活的控制线程的状态和同步。至于如何使用Lock请参考ReentrantLock和synchronized的区别Condition 代替Object的监视器方法,wait,notify。Lock 代替synchronized关...原创 2018-06-09 17:38:08 · 574 阅读 · 0 评论 -
JAVA Socket模拟简单通讯实例(三)
依旧使用bio流。使用线程池技术,管理服务器线程。实现服务器关机处理,解决大部分异常处理。package xin.tomdonkey.net.bio;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.ExecutorServi...原创 2018-07-12 11:27:52 · 386 阅读 · 0 评论