上一页 1 2 3 4 5 6 7 8 9 ··· 28 下一页
摘要: interrupt()只是改变中断状态而已,interrupt()不会中断一个正在运行的线程。这一方法实际上完成的是,给受阻塞的线程抛出一个中断信号,这样受阻线程就得以退出阻塞的状态。 更确切的说,如果线程被Object.wait, Thread.join和Thread.sleep三种方法之一阻塞, 阅读全文
posted @ 2016-05-26 16:51 TonyLuis 阅读(830) 评论(0) 推荐(0) 编辑
摘要: 个人电脑配置:500G机械硬盘+16G NGFF SSD+8G Physical Memory 之前安装Ubuntu16.04,默认装到NGFF的SSD里,/和swap分区一共才16G,于是删除swap分区,发现开机速度奇慢无比,即便将swappiness设为0依旧,so需要在机械硬盘上重新划分一块 阅读全文
posted @ 2016-05-18 11:41 TonyLuis 阅读(3008) 评论(0) 推荐(0) 编辑
摘要: Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能 阅读全文
posted @ 2016-05-11 16:15 TonyLuis 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 图见《JAVA并发编程的艺术》P98-101 这三个方法都是java.lang.Object的方法,用于协调多个线程对共享数据的存取,必须在synchronized语句块中使用!这三个方法最终调用的都是jvm级的native方法,随着jvm运行平台的不同可能有些许差异。 wait(): Causes 阅读全文
posted @ 2016-05-11 12:08 TonyLuis 阅读(239) 评论(0) 推荐(0) 编辑
摘要: ①Thread类实现了Runnable接口,主要构造方法为Thread(Runnable target)、Thread(Runnable target,String name)、Thread(String name) 详见API文档 http://tool.oschina.net/apidocs/a 阅读全文
posted @ 2016-05-10 22:30 TonyLuis 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例 如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PR 阅读全文
posted @ 2016-05-10 22:02 TonyLuis 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 一、使用方式。 join是Thread类的一个方法,启动线程后直接调用,例如: Thread t = new AThread(); t.start(); t.join(); 二、为什么要用join()方法 在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线 阅读全文
posted @ 2016-05-09 22:36 TonyLuis 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 四.深入剖析volatile关键字 在前面讲述了很多东西,其实都是为讲述volatile关键字作铺垫,那么接下来我们就进入主题。 1.volatile关键字的两层语义 一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1)保证了不同线程对这个变量进 阅读全文
posted @ 2016-05-03 22:42 TonyLuis 阅读(235) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽各个硬件平台和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。那么Java内存模型 规定了哪些东西呢,它定义了程序中变量的访问规则,往大一点说是定义了程序执行的次序 阅读全文
posted @ 2016-05-03 22:27 TonyLuis 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 原子性:即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行 比如存取款操作,存款和取款操作必须全部完成,或者全部不完成。 可见性:指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 eg: 假若执行Thread1的是CPU0, 阅读全文
posted @ 2016-05-03 13:50 TonyLuis 阅读(853) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 28 下一页