Java多线程文档+简单的实例
发布日期:2021-05-06 22:12:48 浏览次数:27 分类:精选文章

本文共 3875 字,大约阅读时间需要 12 分钟。

(菜鸟教程)

下表列出了Thread类的一些重要方法:

序号 方法描述
1 public void start()
使该线程开始执行;Java 虚拟机调用该线程的 run 方法。
2 public void run()
如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法;否则,该方法不执行任何操作并返回。
3 public final void setName(String name)
改变线程名称,使之与参数 name 相同。
4 public final void setPriority(int priority)
 更改线程的优先级。
5 public final void setDaemon(boolean on)
将该线程标记为守护线程或用户线程。
6 public final void join(long millisec)
等待该线程终止的时间最长为 millis 毫秒。
7 public void interrupt()
中断线程。
8 public final boolean isAlive()
测试线程是否处于活动状态。

测试线程是否处于活动状态。 上述方法是被Thread对象调用的。下面的方法是Thread类的静态方法。

序号 方法描述
1 public static void yield()
暂停当前正在执行的线程对象,并执行其他线程。
2 public static void sleep(long millisec)
在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。
3 public static boolean holdsLock(Object x)
当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true。
4 public static Thread currentThread()
返回对当前正在执行的线程对象的引用。
5 public static void dumpStack()
将当前线程的堆栈跟踪打印至标准错误流。

一、多线程-继承

package com.etc._01CreateThreadDemo;class BoilWater extends Thread{//烧水类	@Override	public void run() {		// TODO Auto-generated method stub		System.out.println("正在烧水....");		try {			Thread.sleep(10000);		} catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		System.out.println("烧水结束....");	}}class WashCup extends Thread{//洗杯子类	@Override	public void run() {		// TODO Auto-generated method stub		for(int i = 0;i<5;i++){			System.out.println("洗杯子第"+(i+1)+"个");			try {				Thread.sleep(2000);			} catch (InterruptedException e) {				// TODO Auto-generated catch block				e.printStackTrace();			}		}	}}public class ExtendsDemo01 {		//主线程	public static void main(String[] args) {		BoilWater bw = new BoilWater();		bw.start();		WashCup wc = new WashCup();		wc.start();				//一定要调用start方法			}}

二、接口实现

package 线程;class toShow implements Runnable {	@Override	public void run() {		// TODO Auto-generated method stub		System.out.println("开始");		try {			Thread.sleep(8000);		} catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		System.out.println("结束");	}	}class toWord implements Runnable {	@Override	public void run() {		// TODO Auto-generated method stub		System.out.println("一秒");		try {			Thread.sleep(1000);		} catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		System.out.println("六秒");		try {			Thread.sleep(6000);		} catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}			}	}public class Jiekou {	/**	 * @param args	 */		public static void main(String[] args) {		// TODO Auto-generated method stub		toShow to1 = new toShow();		Thread name1 = new Thread(to1);		name1.start();				toWord to2 = new toWord();		Thread name2 = new Thread(to2);		name2.start();			}}

三、多线程(匿名内部类)

package com.etc._01CreateThreadDemo;/** * 匿名内部类实现多线程 *  * 一般是这个类只使用一次 * @author Administrator * */public class InnerClassThreadDemo {		public static void main(String[] args) throws InterruptedException {		for(int i = 0;i<500;i++){			System.out.println("打游戏"+i);			Thread.sleep(500);						if(i == 2){				//创建新的线程  启动线程//				new Thread(new Runnable() {//					//					@Override//					public void run() {//						// TODO Auto-generated method stub//						for(int j = 0;j<500;j++){//							System.out.println("听音乐"+j);//							try {//								Thread.sleep(500);//							} catch (InterruptedException e) {//								// TODO Auto-generated catch block//								e.printStackTrace();//							}//						}//						//					}//				}).start();												new Thread(){										@Override					public void run() {						// TODO Auto-generated method stub						//super.run();						for(int j = 0;j<500;j++){							System.out.println("听音乐"+j);							try {								Thread.sleep(500);							} catch (InterruptedException e) {								// TODO Auto-generated catch block								e.printStackTrace();							}						}					}									}.start();							}		}	}}

 

 

 

 

 

 

 

 

 

 

 

上一篇:JAVA的StringBuffer类
下一篇:Java IO-file类

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年03月22日 23时47分35秒