2011年12月4日

守护线程

摘要: 守护线程在没有用户线程可服务时自动离开,在Java中比较特殊的线程是被称为守护(Daemon)线程的低级别线程。这个线程具有最低的优先级,用于为系统中的其它对象和线程提供服务。将一个用户线程设置为守护线程的方式是在线程对象创建之前调用线程对象的setDaemon方法。典型的守护线程例子是JVM中的系统资源自动回收线程,我们所熟悉的Java垃圾回收线程就是一个典型的守护线程,当我们的程序中不再有任何运行中的Thread,程序就不会再产生垃圾,垃圾回收器也就无事可做,所以当垃圾回收线程是Java虚拟机上仅剩的线程时,Java虚拟机会自动离开。它始终在低级别的状态中运行,用于实时监控和管理系统中的可 阅读全文

posted @ 2011-12-04 10:51 evilying 阅读(11601) 评论(2) 推荐(4) 编辑

barber question

摘要: 理发师问题:一个理发店由一个有几张椅子的等待室和一个放有一张理发椅的理发室组成。1. 若没有要理发的顾客,则理发师去睡觉;2. 若一顾客进入理发店,理发师正在为别人理发,且等待室有空椅子,则该顾客就找张椅子按顺序坐下;3. 若一顾客进入理发店,理发师在睡觉,则叫醒理发师为该顾客理发;4. 若一顾客进入理发店且所有椅子都被占用了,则该顾客就离开。 互斥信号量:mutex 用来互斥对临界变量waiting的访问计数信号量 customers用来记录等候的顾客数据,二进制信号量barber用来表示理发师是否可用;临界变量:waiting由理发师进程和顾客进程共同访问,用来记录在椅子上等着的顾客数 N 阅读全文

posted @ 2011-12-04 10:05 evilying 阅读(740) 评论(0) 推荐(0) 编辑

信号量与互斥锁

摘要: 信号量与普通整型变量的区别: ①信号量(semaphore)是非负整型变量,除了初始化之外,它只能通过两个标准原子操作:wait(semap) , signal(semap) ; 来进行访问;②操作也被成为PV原语(P来源于Dutch proberen"测试",V来源于Dutch verhogen"增加"),而普通整型变量则可以在任何语句块中被访问; 信号量与互斥锁之间的区别:1. 互斥量用于线程的互斥,信号线用于线程的同步。 这是互斥量和信号量的根本区别,也就是互斥和同步之间的区别。 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它 阅读全文

posted @ 2011-12-04 09:23 evilying 阅读(56793) 评论(4) 推荐(10) 编辑

导航