黑马程序员日记-16

本文详细介绍了Java多线程的基本概念,包括进程、线程的区别,JVM启动时的多线程特性,实现多线程的方式以及Thread类常用方法。此外,还探讨了线程同步原理和解决线程安全问题的方法。

------- 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(对象)
   {
    //需要被同步的代码
   }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值