![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
鼬佐
两个字
展开
-
LinkedBlockingQueue的用法
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。由于LinkedBlockingQueue实现是线程安全的原创 2016-01-13 13:48:14 · 358 阅读 · 0 评论 -
junit开启多线程
写过Junit单元测试的同学应该会有感觉,Junit本身是不支持普通的多线程测试的,这是因为Junit的底层实现上,是用System.exit退出用例执行的。JVM都终止了,在测试线程启动的其他线程自然也无法执行。所以要想编写多线程Junit测试用例,就必须让主线程等待所有子线程执行完成后再退出。想到的办法自然是Thread中的join方法。话又说回来,这样一个简单而又典型的需求,难道会没有第转载 2016-01-14 10:54:29 · 975 阅读 · 0 评论 -
关于socket的一些问题
socket的read方法是阻塞的,在单独的线程里while()循环read的话,通过thread.sleep()方法并不能中断线程,可以通过socket.close()来中断线程。客户端socket关闭的话,服务端是感应不到的,但是byte[] buf1 = new byte[6]; socketIn.read(buf1)本来应该阻塞,如果客户端关闭的话,socketIn.read(buf1)会原创 2016-02-02 14:07:06 · 347 阅读 · 0 评论