Java线程中yield与join方法的区别代码解析
2017-06-27 18:49
656 查看
Java线程中yield与join方法的区别。
暂停当前正在执行的线程对象。
程序创建了名为生产者和消费者的两个线程,前者最小优先级,后者最大优先级。调用yield方法,两个线程会依次打印,然后将执行机会交给对方,一直这样进行下去。如果不加yield,结果是先打印完一个,再是另一个
原文地址:http://www.xz-src.com/6733.html
public class HufanTest extends Thread { public static void main(String[] args) throws InterruptedException { Thread t1 = new MyThread1(); t1.start(); for (int i = 0; i < 20; i++) { System.out.println("主线程第" + i + "次执行!"); if (i > 2){ try { // t1线程合并到主线程中,主线程停止执行过程,转而执行t1线程,直到t1执行完毕后继续。 t1.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } } } class MyThread1 extends Thread { public void run() { for (int i = 0; i < 10; i++) { System.out.println("线程1第" + i + "次执行!"); } } }
暂停当前正在执行的线程对象。
程序创建了名为生产者和消费者的两个线程,前者最小优先级,后者最大优先级。调用yield方法,两个线程会依次打印,然后将执行机会交给对方,一直这样进行下去。如果不加yield,结果是先打印完一个,再是另一个
public class Yield { public static void main(String[] args) { Thread producer = new Producer(); Thread consumer = new Consumer(); producer.setPriority(Thread.MIN_PRIORITY); consumer.setPriority(Thread.MAX_PRIORITY); producer.start(); consumer.start(); } } class Producer extends Thread { public void run() { for(int i = 0; i < 5; i++) { System.out.println("i am producer: producerd item " + i); Thread.yield(); } } } class Consumer extends Thread { public void run() { for(int i = 0; i < 5; i++) { System.out.println("i am Consumer: Consumed item " + i); Thread.yield(); } } }
原文地址:http://www.xz-src.com/6733.html
相关文章推荐
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- Java线程中yield与join方法的区别
- Java线程中yield与join方法的区别
- Java线程中yield与join方法的区别
- Java线程中yield与join方法的区别
- Java线程中yield与join方法的区别
- Java线程中yield与join方法的区别
- Java线程中yield与join方法的区别
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- Java线程中yield与join方法的区别
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- Java线程中yield与join方法的区别
- Java线程中yield与join方法的区别
- Java线程中yield与join方法的区别
- 一目了然,Java线程各方法区别:sleep, yield, join, wait, notify
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别
- JAVA -- 线程sleep()和yield()、join()方法区别