码迷,mamicode.com
首页 > 编程语言 > 详细

java 线程

时间:2018-09-05 21:47:25      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:部分   info   停止   lin   基本   src   经典   extends   tar   

进行多线程代码的实现有两种方式:

  1、继承Thread类 2、实现Runnable接口

方法一:继承thread类

  当一个类需要按照多线程的方式处理时,可以让这个类直接继承自Thread类即可,而且继承的时候要覆写好Thread类中提供的run()方法:

  范例:按照要求定义一个线程类
  class MyThread extends Thread { // 继承Thread类
    public void run(){ // 做为线程的主体
      for(int x=0;x<5;x++){
        System.out.println("x = " + x--) ;
      }
    }
   };

  技术分享图片

  技术分享图片

  技术分享图片

    技术分享图片

方法二:实现runnable接口

  技术分享图片

两种实现方式的区别:

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  现在的代码中可以发现,count属性已经被所有的线程对象所共同拥有了

两种实现方式的联系:

  技术分享图片

线程的状态

  

每一个线程对象都要经历五个步骤:
  1、初始化:当创建了一个新的线程对象时
  2、等待:调用了start()方法
  3、执行:调用run()执行的操作的过程
  4、停止:因为所有的线程都需要进行CPU 资源的抢占,那么当一个线程执行完部分代码要交出资源,留给
    其他线程继续执行。
  5、卸载:所有的线程的操作代码都执行完毕之后,就将线程对象卸载下来。

   在本程序中发现出现了一个main 线程,那么这个线程肯定是主方法产生的,之前一直强调,java 本身是属于多线程  的处理机制,所以每次java运行的时候,实际上都会启          动一个JVM的进程。那么既然是多线程的处理机制,实际上主方法是在一个JVM 上产生的一个线程而已,那么一个JVM 启动的时候至

      少启动几个线程呢?两个:main、GC。

 线程的同步与死锁

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

 

  技术分享图片

线程操作的经典案例——生产者和消费者

  以上就是多线程的基本操作,但是在整个多线程存在一个经典的交互案例,生产者和消费者。先通过代码观察问题,
  现在假设说要生产的是一组信息,此组信息有两种选项:
    ·oracle à 数据库
    ·java à www.sun.com.cn

  技术分享图片

  技术分享图片

   技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

  技术分享图片

 

java 线程

标签:部分   info   停止   lin   基本   src   经典   extends   tar   

原文地址:https://www.cnblogs.com/smallpigger/p/9593949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!