java线程小结

线程的状态:

新建状态、就绪状态、运行状态、阻塞状态、终止状态

线程有三种可能:

1、时间片执行时间表用完它将重新回到“就绪状态”,等等待新的调度运行机会

2、线程的run方法代码执行完毕将进入到“终止状态”

3、线程可能因某些事件的发生或者等待某个资源而进入到“阻塞状态”。阻塞条件解除后线程将进入“就绪状态”
如下几种线程会放弃CUP

1、当前时间片用完

2、线程在执行时调用了yield()sleep()方法主动放弃

3、进行I/O访问,等待用户输入,导致纯种阻塞;或者为等候一个条件变量,线程调用wait()方法。

4、有高优先级的线程参与调度。

Thread类的方法

方法

功能

CurrentThread()

返回当前运行的Thread对象

Start()

启动线程

Run()

由调试程序调用,当run()方返回时,该线程停止

Stop()

使调用它的线程立即停止执行

Sleep(int n)

使线程睡眠n毫秒,毫秒后,线程可以再镒运行

Suspend()

使线程挂起,暂停运行Not Runable

Resume()

恢复挂起的线程,使其处可运行状态Runnable

Yield()

CUP控制权主动移交到下一个可运行线程

setName(String );

赋予线程一个名字

getName()

取得由setName()方法设置的线程序名字的字符

getPriority()

返回线程优先级

setPriority()

设置线程优先级

Join()

当前线程等待调用该方法的线程结束后,再往下执行

setDamemon(boolean)

设置该线程是daemon线程还是用户线程,Daemon线程也称服务线程,通常编成无限循环,在后台持续运行

Thread实例:

import java.util.*;
public class TimePrinter extends Thread{

	int pauseTime;//中间休息时间
	String name;//各称标识
	public TimePrinter(int x, String n){
		pauseTime =x;
		name = n;
	}
	public void run(){
		while(true){
			try{
				System.out.println(name+":"+new Date(System.currentTimeMillis()));
				Thread.sleep(pauseTime);//线程睡眠一段时间
			}catch(Exception e){
				System.out.println(e);
			}
		}
	}
	public static void main(String args[]){
		TimePrinter tp1 = new TimePrinter(1000,"Fast Guy");
		tp1.start();
		TimePrinter tp2 = new TimePrinter(3000,"Slow Guy");
		tp2.start();
	}

}


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值