黑马程序员日记-16

来源:互联网 发布:李鸿章 袁世凯 知乎 编辑:程序博客网 时间:2024/05/17 03:34

------- android培训java培训、期待与您交流! ----------

多线程
  (1)多线程
  A:进程:程序的一次执行过程。
  B:线程:线程是进行的执行单元。
  C:任何一个应用程序,都至少有一条执行路径。
  D:单线程程序:应用程序只有一条执行路径。
  E:多线程程序:应用程序有多条执行路径。
   
 (2)jvm启动的时候是多线程的。
  假如jvm的启动时单线程的,就可能存在着内存溢出的隐患。所以,jvm启动是多线程的。至少有两个,主线程和垃圾回收线程。


 (3)java中实现多线程的方式
  A:继承Thread类
  步骤:
  **自定义类继承Thread类
  **重写run方法
  **创建自定义类的对象
  **调用start方法
   
   代码体现:

      public class ThreadDemo extends Thread   {    public void run()    {     //code    }   }   public class ThreadDemoTest    {    public static void main(String[] args)    {     ThreadDemo td1 = new ThreadDemo();      ThreadDemo td2 = new ThreadDemo();     td1.start();     td2.start();    }   }


  B:实现Runnable接口
   步骤:
   **创建自定义类实现Runnable接口
   **在自定义类中实现Runnable接口中的run方法
   **创建自定义类对象,并把该对象作为参数传递给
     Thread类的构造方法来创建Thread的对象
   **调用start方法
   
   代码体现:

   

public class RunnableDemo implements Runnable   {    public void run()    {     //code    }   }   public class RunnableDemoTest    {    public static void main(String[] args)    {     RunnableDemo rd = new RunnableDemo();     Thread t1 = new Thread(rd);     Thread t2 = new Thread(rd);     t1.start();     t2.start();    }   }


 (4)Thread类中的常用的几个小方法
  A:String getName():获取线程的名称
  B:static Thread currentThread():获取当前线程的对象的引用
  C:void setName(String name):通过set方法设置线程对象的名称。
  D:Thread(String name):通过构造方法设置线程对象的名称。


 (5)线程的随机性原理
  CPU的特点:在同一时刻,只能有一个线程执行。多个线程其实是在抢占CPU的资源。而CPU在这些线程中做着高速的切换

2:线程同步
 (1)产生线程安全的原因:1.多个线程访问出现延迟。2.线程访问的随机性

 (2)如果判断一个线程程序有没有安全问题呢?

  A:多个线程操作共享数据
  B:这个操作是分多条语句执行的。

 (3)解决线程安全问题的方式
  A:同步代码块
  B:格式:
   synchronized(对象)
   {
    //需要被同步的代码
   }


0 0