例8.13 本例用于演示挂起和恢复!

// 本例用于演示挂起和恢复!
class E13
{
public static void main(String args[])
{
A a=new A();
Thread thread=new Thread(a);
thread.setName("zhang san");
thread.start();
while(a.getStop()==false){}
System.out.println("我是主线程,负责恢复"+thread.getName()+"线程");
a.restart();

}
}

class A implements Runnable
{
int number=0;
boolean stop=false;
boolean getStop()
{
return stop;
}
public void run()
{
while(true)
{
number++;
System.out.println(Thread.currentThread().getName()+"的number="+number);
if(number==3){
try{
stop=true;
hangUP();
System.out.println(Thread.currentThread().getName()+"恢复");

}catch(Exception e){}
number=0;
}
try{ Thread.sleep(1000);}
catch(Exception e){}

}
}
synchronized void hangUP() throws InterruptedException{
wait();
}
synchronized void restart(){
notifyAll();
}

}

时间: 2025-01-12 15:38:33

例8.13 本例用于演示挂起和恢复!的相关文章

例6.13 已知一个一维数组a[1..n](n<25),又已知一整数m。 如能使数组a中任意几个

/*例6.13 已知一个一维数组a1..n,又已知一整数m. 如能使数组a中任意几个元素之和等于m,则输出YES,反之则为NO.[分析]对于一个已确定的数组a[1..n]和一个确定的数m,判断能否使数组a中任意几个元素之和等于m,等价于判断能否从数组a中取任意数使其和为m. 对于a中任意元素a[n]只有取与不取两种情况: (1)取a[n]: 则此时问题转化为:对于一个已确定的数组a[1..n-1]和一个确定的数m-a[n],判断能否使数组a[1..n-1]中任意几个元素之和等于m-a[n]. (

OC中的单例设计模式及单例的宏抽取

1 // 在一个对象需要重复使用,并且很频繁时,可以对对象使用单例设计模式 2 // 单例的设计其实就是多alloc内部的allocWithZone下手,重写该方法 3 4 #pragma Person.h文件 5 6 #import <Foundation/Foundation.h> 7 @interface Person : NSObject <NSCopying,NSMutableCopying> 8 + (instancetype)sharePerson; // 给类提供一

C程序设计百例之第四例

题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天. 2.程序源代码: #include <stdio.h> int main(void){  int day, month, year, countDay, leap; printf("\nPlease input year, month and day\n"); scanf("%

全局變量以及單例模式和多例模式解析

1. 在Java中沒有全局變量存在性,因為變量都是封裝在類作用域里面.類于類之間的通信是通過繼承類或者是實現接口和注入依賴(組合)機制. a) 在面向對象的編程思想中,我們通常把類中的變量稱作為全局變量,而類中的子程序中的變量和函數參數稱之為局部變量. b) 類中的靜態變量是改變了變量的生命週期,靜態變量的生命週期和類的生命週期一樣. c) 類中的訪問權限的作用就是改變其中變量的作用域,只有用public修飾的變量或者是方法子程序才能夠在外部文件中訪問. d) Protected修飾的變量或者是

接口用例之好用例和坏用例

自动化测试的重要性显而易见,但自动化测试又无法解决所有问题,所以说完全依赖自动化是不可能的,但完全没有自动化是万万不能.在软件开发项目中,重度依赖人力进行持续回归是一件非常枯燥的重复工作.企业需要花费大量的时间和金钱来维持这样一支队伍以保证产品质量,而队伍中的同学在每天重复劳动的工作之下,也丝毫得不到成长,看不到方向. 尽管自动化测试不能解决所有问题,但是却拥有一个优势:“Once” Written, Run Anytime as Desired(一旦写好,即可随意重复执行).所以,自动化测试通

单例模式中的饿汉式单例和懒汉式单例

饿汉式单例: 懒汉式单例 原文地址:https://www.cnblogs.com/jyfby/p/8961600.html

七. 多线程编程11.线程的挂起、恢复和终止

有时,线程的挂起是很有用的.例如,一个独立的线程可以用来显示当日的时间.如果用户不希望用时钟,线程被挂起.在任何情形下,挂起线程是很简单的,一旦挂起,重新启动线程也是一件简单的事. 挂起,终止和恢复线程机制在Java 2和早期版本中有所不同.尽管你运用Java 2的途径编写代码,你仍需了解这些操作在早期Java环境下是如何完成的.例如,你也许需要更新或维护老的代码.你也需要了解为什么Java 2会有这样的变化.因为这些原因,下面内容描述了执行线程控制的原始方法,接着是Java 2的方法. Jav

Java知多少(65)线程的挂起、恢复和终止

有时,线程的挂起是很有用的.例如,一个独立的线程可以用来显示当日的时间.如果用户不希望用时钟,线程被挂起.在任何情形下,挂起线程是很简单的,一旦挂起,重新启动线程也是一件简单的事. 挂起,终止和恢复线程机制在Java 2和早期版本中有所不同.尽管你运用Java 2的途径编写代码,你仍需了解这些操作在早期Java环境下是如何完成的.例如,你也许需要更新或维护老的代码.你也需要了解为什么Java 2会有这样的变化.因为这些原因,下面内容描述了执行线程控制的原始方法,接着是Java 2的方法. Jav

转: 【Java并发编程】之三:线程挂起、恢复与终止的正确方法(含代码)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17095733 挂起和恢复线程     Thread 的API中包含两个被淘汰的方法,它们用于临时挂起和重启某个线程,这些方法已经被淘汰,因为它们是不安全的,不稳定的.如果在不合适的时候挂起线程(比如,锁定共享资源时),此时便可能会发生死锁条件--其他线程在等待该线程释放锁,但该线程却被挂起了,便会发生死锁.另外,在长时间计算期间挂起线程也可能导致问题. 下面的代码演示了通过休眠来延缓运行