`

151多线程(优先级&yield方法)

阅读更多
/*
养成习惯:数据共享用静态
*/
class Demo implements Runnable{
	public void run(){
		for(int x = 0;x < 70;x++){
			System.out.println(Thread.currentThread().toString()
			+"...."+x);
		}
	}
}
class JoinDemo{
	public static void main(String[] args)throws Exception{
		Demo d = new Demo();
		Thread t1 = new Thread(d);
		Thread t2 = new Thread(d);
		
		t1.start();
		
		t1.setPriority(Thread.MAX_PRIORITY);
		
		t2.start();
		t1.join();
		
		for(int x=0;x<80;x++){
			System.out.println("main.."+x);
		}
		System.out.println("over");
	}
}


/*
养成习惯:数据共享用静态
*/
class Demo implements Runnable{
	public void run(){
		for(int x = 0;x < 70;x++){
			System.out.println(Thread.currentThread().toString()
			+"...."+x);
			Thread.yield();
		}
	}
}
class JoinDemo{
	public static void main(String[] args)throws Exception{
		Demo d = new Demo();
		Thread t1 = new Thread(d);
		Thread t2 = new Thread(d);
		
		t1.start();
		
		//t1.setPriority(Thread.MAX_PRIORITY);
		
		t2.start();
		t1.join();
		
		for(int x=0;x<80;x++){
			System.out.println("main.."+x);
		}
		System.out.println("over");
	}
}


class ThreadTest{
	public static void main(String[] args){
		new Thread(){
			public void run(){
				for(int x=0;x<100;x++){
					System.out.println(Thread.currentThread().getName()
					+"..."+x);
				}
			}
		}.start();
		
		for(int x=0;x<100;x++){
			System.out.println(Thread.currentThread().getName()
			+"..."+x);
		}
		
		Runnable r = new Runnable(){
			public void run(){
				for(int x=0;x<100;x++){
					System.out.println(Thread.currentThread().getName()
					+"..."+x);
				}
			}
		}
		new Thread(r).start();
	}
}
分享到:
评论

相关推荐

    线程的基本概念、线程类、任务类、线程优先级、sleep()方法、yield()方法、join方法、interrupt()方法

    线程的基本概念、线程类、任务类、线程优先级、sleep()方法(休眠)、yield()方法(礼让)、join方法(合并)、interrupt()方法(中断),线程的生命周期 线程 与 进程 的关系:**有一个进程中至少包含一个线程 **...

    Java多线程编程之限制优先级

    限制线程优先级和调度 Java 线程模型涉及可以动态更改的线程优先级。本质上,线程的优先级是从 1 到 10 之间的一个数字,数字越大表明任务越紧急。JVM 标准首先调用优先级较高的线程,然后才调用优先级较低的线程。...

    Java 多线程技术:(四)获取线程基本信息_暂停线程_线程的优先级_多线程的安全性_线程同步

    获取线程基本信息_暂停线程_线程的优先级_多线程的安全性_线程同步1.线程操作的常用方法2.暂停线程执行 sleep_yield_join_stop3.线程的优先级问题4.多线程的安全性问题5.线程同步1.同步代码块2.同步方法 1.线程操作...

    Java多线程教程吐血整理干货.md

    多线程 进程和线程 并发和并行 多线程的利弊 什么是上下文切换? 线程的优先级 线程的几种状态 sleep方法和wait方法的区别 stop,suspend,resume等方法为什么会被遗弃 interrupt,interrupted,isInterrupted方法区别 ...

    Java线程中yield与join方法的区别

    长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait...

    java基本教程之线程让步 java多线程教程

    本文对Thread中的线程让步方法yield()进行介绍,yield()的作用是让步。它能让当前线程由“运行状态”进入到“就绪状态”,从而让其它具有相同优先级的等待线程获取执行权,大家参考使用吧

    西电计算机操作系统课程设计pintos-pro2.doc

    在新的线程创立后,可以参加一个比较函数,假设新的线程优先级高 ,那么让出CPU,利用插入排序list_insert_ordered()函数将当前线程按优先级顺序插 入到等待的队列中,假设当前优先级被降低,那么让出CPU;...

    juc相关全套总结,全网最全,最精细。【请用MindManager打开,没有该破解软件的请留言】

    一个java的多线程juc总结,其中包含基础知识,现成的状态图,关于synchronized,线程优先级和线程分类,interrupt、interupted、isInterrupted的使用,sleep、yield、join的详细使用,锁和等待池介绍。

    java7源码-scn:《疯狂Java讲义》学习

    控制线程:join线程、后台线程、线程睡眠(sleep)、线程让步(yield)、改变线程优先级 同步代码块,同步方法synchronized 同步锁:ReentrantLock锁(具有重入性) 死锁 线程通信 线程池 2.网络编程 Java的基本网络支持:...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【多线程】sleep()和wait()分别是哪个类的方法,有什么区别? 79 【多线程】sleep()和yield()的区别 79 【多线程】对synchronized理解?用在代码块和方法上有什么区别? 80 【多线程】Volatile的理解 82 【*多线程】...

    java8源码-JavaSE-Code:JavaSE的代码练习与学习笔记总结

    [Java多线程核心编程技术] 书籍笔记 第一章:Java多线程技能 线程是进程中的子任务 interrupted与isInterrupted的区别: interrupted是Thread类的静态方法,里面调用了isTnterrupted方法[currentThread().isInterrupted...

    Java高级程序设计测试含答案.docx

    () [单选题] * A.wait()(正确答案) B.sleep() C.yield() D.currentThread() 下面关于线程优先级的说法中,正确的是() [单选题] * A.线程的优先级是不能改变的 B.线程的优先级是在创建线程时设置的 C.在...

    JAVA高级程序设计测试题含答案.docx

    currentThread() 第9题 【单选题】【2.00分】【概念理解】 下面关于线程优先级的说法中,正确的是 [单选题] * A. 线程的优先级是不能改变的 B. 线程的优先级是在创建线程时设置的 C. 在创建线程后的任何时间都可以...

    java范例开发大全(pdf&源码)

    实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) 444 实例236 门锁终于被打开了(解决死锁) 446 实例237 一个死锁的例子 ...

    21天学通Java-由浅入深

    257 13.4.2 准备状态 257 13.4.3 运行状态 257 13.4.4 等待/阻塞状态 258 13.4.5 死亡状态 258 13.5 线程的调度 258 13.5.1 睡眠方法 258 13.5.2 线程优先级 260 13.5.3 yield让步方法 261 13.5.4 join让步方法 262 ...

    JAVA基础课程讲义

    通过继承Thread类实现多线程 168 通过Runnable接口实现多线程 169 线程状态和sleep/yield/join/stop/destroy方法 170 新生状态 170 就绪状态 170 运行状态 170 死亡状态 170 终止线程的典型方法(重要!!!) 171 ...

    Java范例开发大全 (源程序)

     第13章 多线程编程(教学视频:121分钟) 405  13.1 多线程的五种基本状态 405  实例222 启动线程 405  实例223 参赛者的比赛生活(线程休眠唤醒) 407  实例224 资源搜索并下载(线程...

    java范例开发大全源代码

     实例45 请求的方法不存在(NoSuchMethodException) 63  4.3 try…catch捕获异常 65  实例46 try…catch捕获异常的实例 66  实例47 try…catch…finally捕获异常的实例 67  实例48 try…catch嵌套捕获...

    疯狂JAVA讲义

    5.7.1 多态性 151 5.7.2 引用变量的强制类型转换 152 5.7.3 instanceof运算符 154 5.8 继承与组合 154 5.8.1 使用继承的注意点 155 5.8.2 利用组合实现复用 156 学生提问:使用组合关系来实现复用时,需要创建...

    java范例开发大全

    实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) 444 实例236 门锁终于被打开了(解决死锁) 446 实例237 一个死锁的例子 ...

Global site tag (gtag.js) - Google Analytics