Java高级(线程)【Day11】

目标
    进一步了解线程
 掌握如何编写线程代码
 掌握线程的状态以及状态之间的转换(线程常用方法)
 线程使用代码
 
1、进一步了解线程
 到镇上找一个饭店:湘菜馆、川菜馆、豫菜馆、土家菜馆、、、、、
 
 把每个饭馆中吃饭的过程看做一个进程完成的整个操作。
 
 把进入一个川菜馆吃饭的进程,拆分成多个线程:
 (1)找位置(资源)
 (2)点菜
 (3)上菜
 (4)吃饭
 (5)结账
 
 顾客、服务员、厨师、收银员
 顾客(88)         独立的线程对象
 服务员(10)       线程调度程序(操作系统、Java虚拟机)
 厨师(5)          Java虚拟机
 收银员(1)
 
 
 线程:
 (1)轻量级的进程;
 (2)线程可以通过Java 编程,人为控制

2、掌握如何编写线程代码
   (1)继承 Thread 类,重写 run(){} 方法
   (2)实现 Runnable 接口,实现 run(){} 方法
   (3)启动线程,必须通过线程对象,调用 t.start() 方法
该方法会自动调用 run(){} 方法中的代码来运行。  

   线程控制方法:
   t.isAlive()      线程是否处于活动状态
   t.getPriority()  得到当前线程的优先级
   t.setPriority()  设置当前线程的优先级
      static int MAX_PRIORITY    10
          线程可以具有的最高优先级。
      static int MIN_PRIORITY    1
          线程可以具有的最低优先级。
      static int NORM_PRIORITY   5
          分配给线程的默认优先级。

  
   Thread.currentThread()  得到当前正在使用 CPU 的线程
   getName()         得到线程的名称
   Thread.currentThread().getName()
   t.sleep(long 毫秒)  使当前正在使用 CPU 的线程睡眠一段时间
    t.wait()         使当前正在使用 CPU 的线程等待
   t.join()          使当前正在使用 CPU 的线程等待,等合并的
                     线程执行完毕,再执行当前线程
   t.yield()         使当前正在使用 CPU 的线程让出 CPU
   t.notify()        当前线程使用 CPU 完毕,通知下一个等待中的线程 
   t.notifyAll()     当前线程使用 CPU 完毕,通知所有等待中的线程
   t.interrupt()     中断线程。
  
 
3、掌握线程的状态以及状态之间的转换(线程常用方法)
 同步状态
 一个银行账户:有卡、有存折,如果有余额 1000 块,
两个人同时使用卡、存折在两个地方取钱。

    当一边在操作的时候,需要把账户信息加锁,只为一边
服务。

4、线程使用代码 
 
 

你可能感兴趣的:(Java高级(线程)【Day11】)