zoukankan      html  css  js  c++  java
  • 黑马程序员-JAVA多线程开发


    ---------------------- android培训java培训、期待与您交流! ----------------------
    线程是轻量级的进程

    每个程序都至少会有一个进程
    进程是一个正在执行中的程序
    每一个进程执行都有一个执行顺序。该顺序是一个执行路经,或者叫做控制单位
    线程:就是进程中的一个
    死锁就是两个进程过河,谁也不让谁就一直僵在那里独立的控制单元。线程在控制着进程的执行
    一个线程至少有一个线程
    JAVA VM 启动时候会有一个进程java.exe
    该进程中至少有一个线程负责JAVA程序的执行。
    而且这个线程运行的代码存在于main方法中
    该线程称之为主线程。
    扩展:其实更细节说明,JVM,JVM启动的不止一个线程,还有负责垃圾回收机制的线程
    实现有两个方法一个是继承Thread然后重写run方法
    static Thread currentThread():获取当前线程对象的。
    GetName():获取线程名称
    步骤:
    1,定义一个继承Thread的类
    2。重写run方法
    Run用于存放需要执行的代码
    3.调用start方法
    start是启动线程,然后调用Run方法来运行这个进程
    CPU并不是真的是实现多个程序共同运行,而是CPU处理的数据非常快再加上快速的切换,使之看起来就好像是多个线程在同时运行
    Thread类用于描述线程。
    该类就定义一个功能,用于存储线程要运行的代码,该存储方法就是Run方法
    Run方法用于存放线程要运行的代码
      1 class Demo extends Thread
      2 {
      3         public void run()
      4         {
      5                 for(int x=0;x<600;x++)
      6                 System.out.println("demo run"+x);
      7         }
      8 }
      9 class ThreadDemo
     10 {
     11         public static void main(String[] args)
     12         {
     13                 Demo d=new Demo();
     14                 d.start(); 
     15                 for(int i=0;i<600;i++)
     16                 System.out.println("hello world!"+i);
     17         }       
     18 }       
    //下面的程序是创建两个进程执行,看同步时的效果
      1
                      1 class Demo extends Thread
      2 {
      3         public void run()
      4         {
      5                 for(int x=0;x<600;x++)
      6                 System.out.println("demo run"+x);
      7         }
      8 }
      9 class ThreadDemo
     10 {
     11         public static void main(String[] args)
     12         {
     13                 Demo d=new Demo();
     14                 d.start(); 
     15                 for(int i=0;i<600;i++)
     16                 System.out.println("hello world!"+i);
     17         }       
     18 }       

    1、一个线程通常需要经历四个状态。
    1。新建
    当你声明一个对象并且创建时就处于新建状态
    2。运行
    线程具有了运行的条件,并且当时刻轮到你这里时并享用CPU的资源
    3。中断
    因为某些条件会致使程序中断,跳到这个状态
    4。死亡
    当线程不具有继承运行的能力。

    创建线程的第二种方式:实现Runable接口
    步骤 
    1,定义类实现Runnable接口中的run方法。
    2.覆盖Runnable接口中的run方法。
    3.通过Thread类建立线程对象
    4.将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
    5。调用THread类的start()方法开启线程并调用Runnable接口了类的run方法
    实例代码如下:
    class Ticket implements Runnable 
    {
    private static int tick=100; 
    public void run()

    {
    while(true){
    if(tick>0)
    {
    System.out.println(Thread.currentThread().getName()+"sale: "+tick--);
    }
    else{
    break;
    }
    }
    }
    }
    class TicketDemo
    {
    public static void main(String[] args)
    {
    //下面是创建四个进程并且启动它
    Ticket t=new Ticket(t);
    Thread t1=new Thread(t);
    Thread t2=new Thread(t);
    Thread t3=new Thread(t);
    Thread t4=new Thread();
    t1.start();
    t2.start();
    t3.start();
    t4.start();

    }
    }
    synchronized(对象)
    {
    需要同步的代码


    }
    函数锁是用this代表
    静态的同步方法,使用的锁是所在类转换后的字节码表示,类名.class
    ---------------------- android培训java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima
  • 相关阅读:
    shell编程介绍
    第一章作业
    jenkins介绍与操作
    gitlab介绍与操作
    github介绍与操作
    git介绍与操作
    zabbix监控tomcat与安全规范
    js-20170605-基本语法
    webstorm激活方法
    mac的一些基本设置(分享篇)
  • 原文地址:https://www.cnblogs.com/tianyake/p/2357516.html
Copyright © 2011-2022 走看看