您的位置:首页 > 其它

线程

2019-04-24 19:05 58 查看

实现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()方法的所有线程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: