java 暂停多线程_关于java中多线程的暂停
packagemessage;importjava.util.Scanner;publicclassThread2{publicstaticvoidmain(String[]args){TextThread1t1=newTextThread1("线程1");TextThread2t2=newTextThread2("线程2");i...
package message;
import java.util.Scanner;
public class Thread2 {
public static void main(String[] args)
{
TextThread1 t1=new TextThread1("线程1");
TextThread2 t2=new TextThread2("线程2");
int x=10;
boolean iswait1=false;
boolean iswait2=false;
Scanner in=new Scanner(System.in);
x=in.nextInt();
while(x!=0)
{
switch(x)
{
case 1:
if(!t1.isAlive())
t1.start();
break;
case 2:
if(!t2.isAlive())
t2.start();
break;
case 3:
if(!iswait1)
{
synchronized(t1)
{
try
{
t1.wait();
}catch (InterruptedException e) {
e.printStackTrace();
}
}
iswait1=true;
}
break;
case 4:
if(!iswait2)
{
synchronized(t2)
{
try
{
t2.wait();
}catch (InterruptedException e) {
e.printStackTrace();
}
}
iswait2=false;
}
break;
case 5:
if(iswait1)
{
synchronized(t1)
{
t1.notify();
}
iswait1=false;
}
break;
case 6:
if(iswait2)
{
synchronized(t2)
{
t2.notify();
}
iswait2=false;
}
break;
case 7:
if(t1.isAlive())
{
try
{
Thread.sleep(1000);
}catch (InterruptedException e){}
t1.StopThread(true);
}
break;
case 8:
if(t2.isAlive())
{
try
{
Thread.sleep(1000);
}catch (InterruptedException e){}
t2.StopThread(true);
}
break;
default:
System.out.println("请重新输入");
break;
}
x=in.nextInt();
}
}
}
class TextThread1 extends Thread
{
private boolean isrun=true;
public TextThread1(String name)
{
super(name);
}
public void StopThread(boolean run)
{
this.isrun=!run;
}
public void run()
{
synchronized(this)
{
for(int i=0;i<1000000;i++)
{
if(!isrun)
break;
System.out.println(this.getName()+":"+i);
}
notify();
}
}
}
class TextThread2 extends Thread
{
private boolean isrun=true;
public TextThread2(String name)
{
super(name);
}
public void StopThread(boolean run)
{
this.isrun=!run;
}
public void run()
{
synchronized(this)
{
for(int i=1000000;i>0;i++)
{
if(!isrun)
break;
System.out.println(this.getName()+":"+i);
}
notify();
}
}
}
在线程1和2运行后,要执行3、4步的暂停线程,可是却没有反应。请大家看一看应该怎么改一下,如果还有其他地方不合适的话也请大家说一说,谢谢
展开
java 暂停多线程_关于java中多线程的暂停相关推荐
- python sqlite3 多线程_在python中多线程访问sqlite3数据库
Python标准库中有sqlite3模块,可见对此数据库的认可.不过,此模块在使用时也有限制,同一个数据库连接,不能在不同线程中共享. import threading import sqlite3 ...
- java 怎么启动多线程_了解Java多线程及如何创建和启动多线程?
1 . 进程与线程 至今为止,我们开发的程序在同一时间只能执行一项任务,如果程序执行中遇到了耗时的任务,程序必须等待该任务完成后才能执行后续的代码.这样的单线程结构不能充分利用计算机的硬件资源,代码运 ...
- java线程开启不了_Java中多线程启动,为什么调用的是start方法,而不是run方法?...
前言 大年初二,大家新年快乐,我又开始码字了.写这篇文章,源于在家和基友交流的时候,基友问到了,我猛然发现还真是这么回事,多线程启动调用的都是start,那么为什么没人掉用run呢?于是打开我的ide ...
- java1.5多线程_【Java多线程】JDK1.5并发包API杂谈
并发与并行 并发 一个或多个处理器执行更多的任务(通过划分时间片来执行更多的任务),从逻辑上实现同时运行: 如,N个并发请求在一个两核CPU上: 并行 N个处理器分别同时执行N个任务,从物理上实现同时 ...
- java第七章多线程_第七章 多线程
7 多线程 7.1 进程和线程 1.进程进程是一个正在执行中的程序 每一个进程都有一个执行顺序,该顺序是一个执行路径,或者叫做一个控制单元 2.线程线程就是进程中的一个独立控制单元 线程在控制着进程的 ...
- java动画闪烁_优化Java动画编程中的显示效果
Java动画编程有多种实现方法,但它们实现的基本原理是一样的,即在屏幕上画出一系列的帧来造成运动的感觉.Java多线程技术是Java动画编程中普遍运用的技术,它在控制动画程序的流程和动画的显示效果方面 ...
- java实现分而治之_并发编程中一种经典的分而治之的思想!!
写在前面 在JDK中,提供了这样一种功能:它能够将复杂的逻辑拆分成一个个简单的逻辑来并行执行,待每个并行执行的逻辑执行完成后,再将各个结果进行汇总,得出最终的结果数据.有点像Hadoop中的MapRe ...
- java coin介绍_代码示例中的Java 7:Project Coin
java coin介绍 该博客通过代码示例介绍了一些新的Java 7功能,这些项目在Project Coin一词下进行了概述. Project Coin的目标是向JDK 7添加一组小的语言更改.这些更 ...
- java final 类_在Java中,final修饰的类有什么特点
展开全部 关于Java中的32313133353236313431303231363533e4b893e5b19e31333264663736final(2010-09-09 14:19:48)转载▼ ...
- java logging包_用JDK中提供的java.util.logging.*包创建Logger对象----原创
由于项目中用到了Applet与Servlet之间(客户端用Applet.Server端用Servlet)的通信,要求: 1:>客户端与服务端必须出Log. 2:>浏览器在加载Applet时 ...
最新文章
- linux 5 防火墙,CentOS 5 Linux iptables防火墙的配置
- 计算机二级能学到知识吗,2017年关于计算机二级msoffice学习知识点
- Linux开启路由转发功能(透明代理环境搭建)
- python的xpath用法_python之Xpath语法
- js text 和 html,JS DOM innerText和textContent的区别
- 英语计算机房和操场怎么读,计算机房对我们学习帮助很大. the , in studies , computer , room , helps , lot , a , our , us...
- linux脚本监控某一进程,linux监控某个进程的运行shell脚本
- 知乎: 如何评价阿里开源的企业级 Node.js 框架 egg? #18
- mysql 开启慢查明_mysql开启慢查询方法
- oracle last day比较,PLSQL LAST_DAY用法及代码示例
- 华为畅享8plus停产了吗_华为99元起换电池新增27款机型!同时新增一项实用功能...
- ch8 ProviderDemo
- Oracle DG Broker 进行 SwitchOver Failover,Failover后恢复主从同步
- [L4D]目录Missions中任务与地图关系
- php漂浮广告代码,JS实现网站悬浮广告的代码
- pytorch 网络结构可视化之netron
- tcp连接失败触发的异常
- javax.el.ELException Cannot convert 0e27d734-c316-4e13-8770-161092a2b3c4 of type class java.lang.Str
- 基于Vue+SpringCloudAlibaba微服务电商项目实战-商品服务-015:亿万级别商品详情页面实现动态优化
- 学习之响应式应用架构重构ReactiveX
热门文章
- 每日一皮:美丽的背后都妙不可言...
- 10道棘手的Java面试题,看看你能答对几个?
- 面试:InnoDB 中一棵 B+ 树可以存放多少行数据?
- 100G 免费技术学习资料大全分享 (2020 年最新)
- 开源监控系统 Prometheus 入门
- 推荐一款让你纵横Github的读码神器
- android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...
- 两个数据库字符集不一样,如何快速增量同步数据.
- Oracle分区表详解 .
- tensorflow兼容问题