App11

2024-03-20 00:08
文章标签 app11

本文主要是介绍App11,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*** 项目名称:App11_多线程0929 * 文件名:Main.java* 版本信息:* 日期:2014年9月29日* Copyright asiainf-linkage Corporation 2014* 版权所有 **//*** Main* * @author:shaojh@asiainfo.com* @2014年9月29日 下午12:44:22* @version 1.0*/
public class Main {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubnew Main().init();}public void init() {final Business business = new Business();new Thread(new Runnable() {public void run() {for (int i = 0; i < 50; i++) {business.SubThread(i);}}}).start();
//		for (int i = 0; i < 50; i++) {
//			business.SubThread(i);
//		}for (int i = 0; i < 50; i++) {business.MainThread(i);}}private class Business {boolean bShouldSub = true;// 这里相当于定义了控制该谁执行的一个信号灯public synchronized void MainThread(int i) {if (bShouldSub)try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}for (int j = 0; j < 100; j++) {System.out.println(Thread.currentThread().getName() + ":i=" + i+ ",j=" + j);}bShouldSub = true;this.notify();}public synchronized void SubThread(int i) {if (!bShouldSub)try {this.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}for (int j = 0; j < 10; j++) {System.out.println(Thread.currentThread().getName() + ":i=" + i+ ",j=" + j);}bShouldSub = false;this.notify();}}
}

这篇关于App11的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/827654

相关文章

App11_08_用两个线程模拟存票、售票过程

//用两个线程模拟存票、售票过程,直到售完为止 存票->售票->存票->售票->存票...//wait() vs sleep():wait放弃CPU资源同时让出控制权(释放已有对象的互斥锁),sleep还是占有public class App11_8 {public static void main(String[] args) {Tickets t = new Tickets(10); /

App11_06_多线程同步

//用线程同步的方法设计用户从银行取款的应用程序//用synchronized关键字标识同步的资源--临界区class Mbank // 模拟银行账户类{private static int sum = 2000; // 临界区的共享变量 通常为私有静态变量public synchronized static void take(int k) // 限定take()为同步方法{int tem

App11_05_Runnable接口程序模拟航班售票系统

//Runnable接口程序模拟航班售票系统--cool! Runnable接口适合处理多线程访问同一资源class ThreadSale implements Runnable {private int tickets = 10;public void run() {while (true) {if (tickets > 0)System.out.println(Thread.currentT

App11_03_线程中join()方法的使用

//线程中join()方法的使用class MyThread extends Thread {private String who;public MyThread(String str) {who=str;}public void run() {for(int i=0;i<5;i++){try{sleep((int)(1000*Math.random())); }