进程线程
报恩的猫
码农
展开
-
为什么要中断线程呢?
中断: 有软中断和硬中断之分。而硬中断多为外围设备引起而且发生多是随机的,故我们在这里只讨论java程序中的软中断,是可控的。 这里我必须要回答几个问题,然而是网上大多数文章没有回答的。 a)为什么使用中断? b)何时使用中断? c)中断和结束线程之间有什么关系? d)中断是否就是结束线程? 回答 a)在java中我们引入中断的目的是为了打断线程现在所处的某种状态转载 2014-05-14 21:04:40 · 788 阅读 · 0 评论 -
同一进程中的线程究竟共享哪些资源
在一个进程的线程共享堆区,而进程中的线程各自维持自己堆栈。转载 2014-04-30 21:19:00 · 2353 阅读 · 0 评论 -
中断线程Interrupt()
背景 中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作。线程是死亡、还是等待新的任务或是继续运行至下一步,就取决于这个程序。虽然初次看来它可能显得简单,但是,你必须进行一些预警以实现期望的结果。你最好还是牢记以下的几点告诫。 首先,忘掉Thread.stop方法。虽然它确实停止了一个正在运行的线程,然而,这种方法是不安转载 2014-05-14 11:54:07 · 584 阅读 · 0 评论 -
一个简单的死锁示例
/** * 一个简单的死锁类 * @author iStar * 当类的对象flag=1时(T1),先锁定O1,睡眠500毫秒,然后锁定O2; * 而T1在睡眠的时候另一个flag=0的对象(T2)线程启动,先锁定O2,睡眠500毫秒,等待T1释放O1; * T1睡眠结束后需要锁定O2才能继续执行,而此时O2已被T2锁定; * T2睡眠结束后需要锁定O1才能继续执行,而此时O1已被T1转载 2014-05-15 10:38:42 · 622 阅读 · 0 评论 -
阻塞(sleep等等)区别 中断(interrupt)+ 中断的意义
不客气地说,至少有一半人认为,线程的"中断"就是让线程停止。如果你也这么认为,那你对多线程编程还没有入门。 在java中,线程的中断(interrupt)只是改变了线程的中断状态,至于这个中断状态改变后带来的结果,那是无法确定的,有时它更是让停止中的线程继续执行的唯一手段。不但不是让线程停止运行,反而是继续执行线程的手段。 对于执行一般逻辑的线程,如果调用它的interrupt转载 2014-05-14 15:32:26 · 869 阅读 · 0 评论 -
线程安全与不安全(误解)
Count.java: [java] view plaincopy public class Count { private int num; public void count() { for(int i = 1; i 10; i++) { num += i;转载 2014-05-15 10:01:14 · 541 阅读 · 0 评论 -
对象锁 区别 类锁
对象锁 当一个对象中有synchronized method或synchronized block的时候调用此对象的同步方法或进入其同步区域时,就必须先获得对象锁。如果此对象的对象锁已被其他调用者占用,则需要等待此锁被释放 同步静态方法/静态变量互斥体 由于一个class不论被实例化多少次,其中的静态方法和静态变量在内存中都只由一份。所以,一旦一个静态的方法被申明为 synchron转载 2014-05-15 10:59:20 · 468 阅读 · 0 评论 -
孤儿进程与僵尸进程
1、前言 之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入,倍感惭愧。晚上回来google了一下,再次参考APUE,认真总结一下,加深理解。 2、基本概念 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的转载 2014-11-03 15:54:38 · 440 阅读 · 0 评论 -
进程和线程的区别、通信方式的区别
进程间的通信方式: 1.管道(pipe)及有名管道(named pipe): 管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。 2.信号(signal): 信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一致的。转载 2014-10-17 20:11:59 · 566 阅读 · 0 评论