JAVA知识点总结15-多线程

来源:互联网 发布:node.js高级编程 微盘 编辑:程序博客网 时间:2024/05/17 00:59

1.多线程

   1.两种实现方式:继承Thread,实现Runnable接口,但都要重写run方法

     2.多个对象可同时开启线程,但一个对象不可重复开启线程

     3.对象单独调用run方法还是在主线程上,而调用start开启了一个新线程

     4.线程命名:setName(“”); 线程的调度优先级 setPriority()默认值是5,区间1-10

     5.Thread.currentThread().getName(),   this.getName();

      

  线程安全问题:

     1.用锁synchronized锁上

     A.同步代码块时:  在这里,对象如果是同一个,安全,不是同一个则不安全

        Object obj=new Object();

      synchronized(对象obj){

          代码;

          }


     B.静态同步方法:在这里,对象是类的字节码对象MyThread.class

public static synchronized void sellTicket(类的字节码对象) {

      需要同步的代码

}

      

     C.同步方法:仅适用于实现runable接口

public synchronized void sellTicket(this){

同步代码

}


  匿名内部类:

        方式1:
new Thread(){
//重写的方法
@Override
public void run() {
for (int i = 0; i <10; i++) {
System.out.println(i);
}
}
}.start();

方式2
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i <10; i++) {
System.out.println(i);
}
}
}).start();


Sleep wait 的不同?

  sleep在一定时间后自动唤醒,wait需要手动唤醒

  锁对象.notify

    

 

原创粉丝点击