java多线程
下一个丶奇迹
Android路上,一起爬坑。。。
展开
-
多线程中断机制
在 java中启动线程非常容易,大多数情况下是让一个线程执行完自己的任务然后自己停掉。一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果,比如会带着自己所持有的锁而永远的休眠,迟迟不归还锁等。 在当前的api中,Thread.suspend、Thread.stop等方法都被Deprecated了,线程只能用interrupt中断,而且不是立刻中断,只是发了一原创 2017-08-18 12:02:55 · 15947 阅读 · 19 评论 -
深入Thread.sleep
一直都说,Threed.sleep是不会释放锁,而wait是释放锁的(对象锁),现理论上来分析一下啊。由于CPU分配的每个线程的时间片极为短暂(一般为几十毫秒),所有CPU通过不停地切换线程执行,这样就给程序员一种错觉,以为多个线程是在同时执行。sleep就是正在执行的线程主动让出cpu,cpu去执行其他线程,在sleep指定的时间过后,cpu才会回到这个线程上继续往下执行,如果当前线程进入了同步锁原创 2017-08-10 14:54:48 · 27215 阅读 · 18 评论 -
线程池原理
面向对象编程中,对象创建和销毁是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是对一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关键问题,其实这就是一些”池化资源”技术产生的原因。比如大家所熟悉的数据库连接池就原创 2017-07-27 17:49:50 · 12442 阅读 · 6 评论 -
head first Thread.join()
不使用Thread.join() 测试线程先上代码:/** * Created by Zero on 2017/8/23. */public class TestJoin implements Runnable { public static int a = 0; @Override public void run() { for (int i = 0;原创 2017-08-24 17:28:19 · 4123 阅读 · 4 评论 -
四大线程池详解
new Thread 的弊端首先看一段代码:/** * Created by Zero on 2017/8/30. */public class ThreadTest { public static void main(String[] args) { while (true) { new Thread(new Runnable() {原创 2017-08-30 17:47:25 · 30965 阅读 · 19 评论