线程

实现Runnable接口创建多线程

  class Tick implements Runnable {
	private int num = 100;
	public void run() {
		while (true) {
			if(num>0) {
				Thread tk = Thread.currentThread();//获得当前线程
				String mString = tk.getName();//获得当前线程的名字
				System.out.println(mString+" "+num--+" ");
				}
			}
			
		}

多线程

public static void main(String[] args) {
	// TODO Auto-generated method stub

	Tick tick = new Tick();//创建实例对象
	
	new Thread(tick,"m1").start();//创建线程对象并命名m1,开启线程
	new Thread(tick,"m2").start();
	new Thread(tick,"m3").start();
	new Thread(tick,"m4").start();
}

后台线程

public static void main(String[] args) {
	Tick tick = new Tick();//创建实例对象
	Thread k = new Thread(tick,"后台线程");
	k.setDaemon(true);//将线程k设置为后台线程
	k.start();//开启线程
}

线程的优先级

public static void main(String[] args) {
		// TODO Auto-generated method stub

		Tick tick = new Tick();//创建实例对象
		Thread k1 = new Thread(new Tick(),"优先级max");
		Thread k2 = new Thread(new Tick(),"优先级nin");
		Thread k3 = new Thread(new Tick(),"优先级norm");
		Thread k4 = new Thread(new Tick(),"优先级2");
		
		//优先级高到低,高的优先执行
		k1.setPriority(Thread.Max_PRIORITY);//最高优先级 ——10
		k2.setPriority(Thread.MIN_PRIORITY);//最低优先级 ——1
		k3.setPriority(Thread.NORM_PRIORITY);//普通优先级 ——5
		k4.setPriority(2);//优先级 ——2
		
		k1.start();k2.start();k3.start();k4.start();
		
	}

线程休眠

Thread.sleep(500);  //当前线程休眠500毫秒
//只能控制当前线程休眠,休眠时间结束后,线程返回就绪状态,不立即执行

线程让步

while(条件):
	Thread.yield();//线程运行到此,做出让步

线程插队

Tick tick = new Tick();//创建实例对象
tick.start();
while(条件):
	t.join();

同步代码块

synchronized(lock){
	操作共享资源代码块
}

synchronized 返回值类型 方法名 ([参数1,。。。。]){ 	}

多线程通信

void wait()  使当前线程放弃同步锁并进入等待在,直到其他线程进入此同步锁,并调用notify()方法,或notifyAll()方法唤醒该线程为止
void notify() 唤醒此同步锁等待的第一个调用wait()方法的线程
void notifyAll() 唤醒此同步锁调用wait()方法的所有线程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值