黑马程序员_日记01(多线程)

来源:互联网 发布:纳什职业场均数据 编辑:程序博客网 时间:2024/05/16 05:14

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

一:实现线程的两种方法

   1,继承Thread类

   2,实现Runnable接口

二:线程同步

   同步的前提:

      1,必须要有两个或两个以上的线程

      2,必须是多个线程使用同一个锁

      3,必须保证同步中只能有一个线程在运行

   synchronized(对象) {           

       需要同步的代码块

   }

   synchronized也可放在方法名前使之成为同步方法,同步函数使用的锁是this

   静态的同步方法使用的锁是该方法所在类的字节码文件对象,类名.class

三:线程间通信(操作同一资源,但操作的方法不同)

  wait(),notify(),notifyAll();三者都要对持有锁的线程操作,都使用在同步中,因为只有同步才具有锁

  这些操作线程的方法定义在object类中,因为这些操作都有标识所操作线程的锁,同一个锁上的等待线程只能被相同锁的notify唤醒,锁可以是任意对象。