文章目录
实现多线程的两种方法:继承Thread,实现RunnableThread.sleep(int milisecond)Thread.join()Thread.yield(): 礼让线程synchronized同步代码块与synchronized关键字同步方法
实现多线程的两种方法:继承Thread,实现Runnable
class Thread1 extends Thread {
@Override
publci
void run(){
sysout(getName() + ".....aaaaaaaa");
}
}
class MyRunnable implements Runnable {
@Override
public void run() {
sysout(getName
+ "...bb");
}
}
public class Demo1 {
public void main(String
[] args
) {
Thread1 thread1
= new Thread1();
thread1
.start
;
new Thread(newe
Runnable() {
@Override
public void run() {
sysout(getName
+ "....bb")
}
}).start
;
}
}
Thread.sleep(int milisecond)
线程休眠milisecond毫秒
Thread.join()
线程强制加入
Thread t1
= new Thread();
t1
.join
;
Thread.yield(): 礼让线程
线程终止
synchronized同步代码块与synchronized关键字同步方法
synchronized(任意对象) {
sysout("I");
sysout("love");
sysout("you");
}
synchronized(同一对象) {
sysout("我");
sysout("爱");
sysout("你");
}
非静态的同步方法的锁对象:默认为this
静态的同步方法的锁对象:该类的字节码对象
public synchronized void test() {
//这个方法默认的同步对象为this
}
public void test2() {
synchronized(this) {
//与上一个方法是同一个 同步对象
//所以这个这两个方法分别synchronized执行
}
}