例1 volatile提醒编译器它后面所定义的变量随时都有可能改变。因此编译后的程序每次须要存储或读取这个变量的时候,都会直接从变量地址中读取数据。假设没有volatile关键字。则编译器可能优化读取和存储。可能临时使用寄存器中的值。假设这个变量由别的程序更新了的话,将出现不一致的现象。 以下举例说 ...
分类:
其他好文 时间:
2017-06-16 22:02:42
阅读次数:
269
1, 线程的概念 一个程序中的方法有几条执行路径, 就有几个线程 2, 线程的创建: 两种方式: 1, 继承Thread类 class TestThread extends Thread {......} 2, 实现Runnable接口, 然后作为参数传入到Thread类的构造方法中 class T ...
分类:
编程语言 时间:
2017-06-14 16:30:37
阅读次数:
179
这一章节我们来讨论一下线程中断(interrupt)。1.什么是线程中断(interrupt)?就是在多线程执行的时候,我们给线程贴上一个中断的标记。可是不要求线程终止。 2.样例:中断的样例:package com.ray.ch17; public class Test2 { public sta ...
分类:
编程语言 时间:
2017-06-12 18:12:59
阅读次数:
150
原文转自 http://blog.csdn.net/anda0109/article/details/41943691 thread的成员函数interrupt()允许正在执行的线程被中断,被中断的线程会抛出一个thread_interrupted异常,它是一个空类,不是std::exception ...
分类:
编程语言 时间:
2017-06-11 21:17:49
阅读次数:
216
阻塞状态: sleep 可中断利用 interrupt方法 wait IO 不可中断 I:关闭底层资源 II:new I O 任务试图在某个对象上调用其同步控制方法,但是对象锁被另一个任务获取 不可中断 Executor.shutdownNow() 发送一个interrupt() 调用给它启动的所有 ...
分类:
编程语言 时间:
2017-06-11 19:17:13
阅读次数:
181
package com.test; public class Programe { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub Syst... ...
分类:
编程语言 时间:
2017-06-11 17:24:43
阅读次数:
244
Java堆溢出 虚拟机参数: 将堆的最小值和最大值都限制成为20M,-XX:+HeapDumpOnOutOfMemoryError出现内存异常时令java虚拟机Dump堆内存转储快照 代码 运行出现异常: 为了查看实时堆的使用情况,我们可以安装VisualVM Launcher。 安装请参考http ...
分类:
编程语言 时间:
2017-06-11 16:31:47
阅读次数:
266
转自:http://blog.csdn.net/yikai2009/article/details/8653697 版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 阻塞 阻塞操作 非阻塞操作 阻塞方式-read- 实现 阻 ...
分类:
系统相关 时间:
2017-06-11 16:25:52
阅读次数:
440
简单的写一个小程序了解一些信号的机理 尽管阻塞和非阻塞操作和 select 方法的结合对于查询设备在大部分时间是足够的, 一些情况还不能被我们迄今所见到的技术来有效地解决.让我们想象一个进程, 在低优先级上执行一个长计算循环, 但是需要尽可能快的处理输入数据. 如果这个进程在响应新的来自某些数据获取 ...
分类:
系统相关 时间:
2017-06-09 13:24:41
阅读次数:
307
Java中的多线程是一种抢占式的机制,而不是分时机制。抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行。 共同点 : 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回。 2. wait()和sleep()都可以通过interrupt()方法 打断线程的暂停状 ...
分类:
其他好文 时间:
2017-06-08 17:56:27
阅读次数:
137