`
atomcow
  • 浏览: 8037 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

线程 第六讲 091212B

阅读更多
public class TestThread extends Thread {

	public static void main(String[] args) {
		TestThread tt=new TestThread();
		tt.start();
		for (int i = 0; i <100; i++) {	
			System.out.println(i+"22222222");
		}
	}

	@Override
	public void run() {
		for (int i = 0; i <100; i++) {			 
			System.out.println(i+"aaaaaaaaaa");
		}

	}

}
输出:(i+"22222222"和i+"aaaaaaaaaa"交替输出)
-------------------------------------------------------------------------
public class TestThread2 {
	public static void main(String[] args) {
		Thread2 t2=new Thread2();
		Thread t=new Thread(t2);
		t.start();
		for (int i = 0; i < 100; i++) {
			System.out.println("-------------------");
		}
	}
}

class Thread2 implements Runnable {//多线程接口的实现,推荐使用这种方法。

	@Override
	public void run() {
		for (int i = 0; i < 100; i++) {
			System.out.println("子" + i);
		}
	}
}
输出:("-------------------"和"子" + i交替输出)
-------------------------------------------------------------------------
public class TestThread3 {
	public static void main(String[] args) throws InterruptedException {
		Thread3 t3 = new Thread3("the3name");//为线程命名
		t3.setName("the3newname");//为线程重命名
		t3.start();
//		t3.join();	
		for (int i = 0; i < 10; i++) {
			Thread.sleep(500);
			System.out.println(t3.getName()+i);
			if (i==4) {
				t3.join();		//join合并进来,不按照线程进行,而按照顺序。		
			}
		}
	}
}

class Thread3 extends Thread {
	public Thread3(String s) {
		super(s);
	}

	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			try {
				Thread.sleep(500);
			} catch (InterruptedException e) {
 				e.printStackTrace();
			}
			System.out.println("子。"+i);
		}
	}
}
输出:
子。0
the3newname0
子。1
the3newname1
the3newname2
子。2
子。3
the3newname3
the3newname4
子。4
子。5
子。6
子。7
子。8
子。9
the3newname5
the3newname6
the3newname7
the3newname8
the3newname9
-------------------------------------------------------------------------
public class TestThread4 {
	public static void main(String[] args) {
		Thread4 t41 = new Thread4("W1----");
		Thread4 t42=new Thread4("M2++");
		t41.start();
		t42.start();
		for (int i = 0; i < 100; i++) {
			System.out.println("。。。main"+i);
		}
	}
}

class Thread4 extends Thread {
	public Thread4(String s) {
		super (s);
	}
	public void run() {
		for (int i = 0; i < 100; i++) {
			System.out.println(this.getName()+i);
			if(i%5==0){
				Thread.yield();//当I为5的整倍数时候,线程被迫中止。
			}
		}		
	}
}
-------------------------------------------------------------------------
import java.util.Timer;
import java.util.TimerTask;

class Task1 extends TimerTask {
	@Override
	public void run() {
		System.out.println("1");
	}
}
class Task2 extends TimerTask {
	@Override
	public void run() {
		System.out.println("2");
	}
}
class Task3 extends TimerTask {
	@Override
	public void run() {
		System.out.println("3");
	}
}

public class TestTimeTask {//定时器
	public static void main(String[] args) {
		Timer timer = new Timer();                                     
		timer.schedule(new Task2(),1000, 1000);   //构造函数有多种写法表达的意义不同
	}
}
-------------------------------------------------------------------------

//死锁
class TestDeadLock implements Runnable {
	public int flag = 1;
	static Object o1 = new Object(), o2 = new Object();
	public void run() {
		System.out.println("flag=" + flag);
		if(flag == 1) {
			synchronized(o1) {
				try {
					Thread.sleep(500);
				} catch (Exception e) {
					e.printStackTrace();
				}
				synchronized(o2) {
					System.out.println("1");
				}
			}
		}
		if(flag == 0) {
			synchronized(o2) {
				try {
					Thread.sleep(500);
				} catch (Exception e) {
					e.printStackTrace();
				}
				synchronized(o1) {
					System.out.println("0");
				}
			}
		}
	}	

	public static void main(String[] args) {
		TestDeadLock td1 = new TestDeadLock();
		TestDeadLock td2 = new TestDeadLock();
		td1.flag = 1;
		td2.flag = 0;
		Thread t1 = new Thread(td1);
		Thread t2 = new Thread(td2);
		t1.start();
		t2.start();

	}
}
分享到:
评论

相关推荐

    网络架构师148讲视频课程

    │ 第80节:多线程consumer访问集群.avi │ 第81节:集群下的消息回流功能.avi │ 第82节:容错的链接和动态网络连接.avi │ 第83节:ActiveMQ的集群.avi │ 第84节:Destination高级特性一.avi │ 第85节:...

    超级有影响力霸气的Java面试题大全文档

    当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...

    java 面试题 总结

    Java Bean 是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean。但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,...

    C#5.0本质论第四版(因文件较大传的是百度网盘地址)

    第6章 继承 187 6.1 派生 188 6.1.1 基类型和派生类型之间的转型 190 6.1.2 private访问修饰符 191 6.1.3 protected访问修饰符 192 6.1.4 扩展方法 193 6.1.5 单继承 194 6.1.6 密封类...

    最新Java面试宝典pdf版

    六. XML部分 113 1、xml有哪些解析技术?区别是什么? 113 2、你在项目中用到了xml技术的哪些方面?如何实现的? 114 3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML...

    Java面试宝典2010版

    六. XML部分 1、xml有哪些解析技术?区别是什么? 2、你在项目中用到了xml技术的哪些方面?如何实现的? 3、用jdom解析xml文件时如何解决中文问题?如何解析? 4、编程用JAVA解析XML的方式. 5、XML文档定义有几种形式?...

    Java面试笔试资料大全

    六. XML部分 113 1、xml有哪些解析技术?区别是什么? 113 2、你在项目中用到了xml技术的哪些方面?如何实现的? 114 3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML...

    Reversing:逆向工程揭密

    其中第5章、第9章和附录A、B、C由韩琪翻译,第3章、第11章和第13章由杨艳翻译,第7章、第8章和第10章由王玉英翻译,第4章和第6章由李娜翻译,第1章由褚华翻译,第2章由陈贵敏翻译,第12章由辛健斌翻译;全部译稿的...

    java视频教程Day01 免费

    6. Object-Oriented Programming II (类与对象II) 7. Object-Oriented Advanced Topic (类与对象高级特性) 8. Exceptions (异常) 9. 图形用户界面编成 (安排一个游戏例子,坦克或者飞机游戏;以及一个CS结构的...

    Java面试宝典2012新版

    六. XML部分 113 1、xml有哪些解析技术?区别是什么? 113 2、你在项目中用到了xml技术的哪些方面?如何实现的? 114 3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML...

    Java面试宝典-经典

    六. XML部分 113 1、xml有哪些解析技术?区别是什么? 113 2、你在项目中用到了xml技术的哪些方面?如何实现的? 114 3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML...

    JAVA面试宝典2010

    六. XML部分 113 1、xml有哪些解析技术?区别是什么? 113 2、你在项目中用到了xml技术的哪些方面?如何实现的? 114 3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML...

    java面试题大全(2012版)

    六. XML部分 113 1、xml有哪些解析技术?区别是什么? 113 2、你在项目中用到了xml技术的哪些方面?如何实现的? 114 3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、XML...

    java面试宝典2012

    六. XML部分 124 1、xml有哪些解析技术?区别是什么? 124 2、你在项目中用到了xml技术的哪些方面?如何实现的? 124 3、用jdom解析xml文件时如何解决中文问题?如何解析? 124 4、编程用JAVA解析XML的方式. 125 5、XML...

    Java面试宝典2012版

    六. XML部分 113 1、xml有哪些解析技术?区别是什么? 113 2、你在项目中用到了xml技术的哪些方面?如何实现的? 114 3、用jdom解析xml文件时如何解决中文问题?如何解析? 114 4、编程用JAVA解析XML的方式. 115 5、...

    (重要)AIX command 使用总结.txt

    ssaxlate -l hdisk3 //逻辑磁盘hdisk3包含4个物理磁盘pdisk4,pdisk6,pdisk5,pdisk7 pdisk4 pdisk6 pdisk5 pdisk7 ssaxlate -l pdisk0 //物理磁盘pdisk0从属于逻辑磁盘hdisk2 hdisk2 ## 查看SSA磁盘阵列中pdisk与...

Global site tag (gtag.js) - Google Analytics