java多线程实现和常用的方法

1、线程

    1.1线程的概念                                                                                                                                                                                           (英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程执指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

    1.2为什么要引入多线程?                                                                                                                                                                            答:我觉的是因为虽然进程可以提高CPU的利用率,但是进程之间的切换是非常耗费资源和时间的,为了能更进一步的提高 操作系统的并发进,引进了线程

    1.3线程的生命周期                

  1. 新建状态 :当线程对象对创建后,即进入了新建状态
  2. 就绪状态 :当调用线程对象的start()方法(t.start();),线程即进入就绪状态。
  3. 运行状态 :当CPU开始调度处于就绪状态的线程时,此时线程才得以真正执行,即进入到运行状态。
  4. 堵塞状态 :处于运行状态中的线程由于某种原因,暂时放弃对CPU的使用权,停止执行,此时进入阻塞状态,直到其进入到就绪状态,才 有机会再次被CPU调用以进入到运行状态。
  5. 堵塞状态:线程执行完了或者因异常退出了run()方法,该线程结束生命周期。

2、java中多线程的创建

    2.1方法介绍                                                                                                                                                                                                 java中创建线程在jdk1.5之前有两种方式:1.实现Runnable接口2.继承Thread类 。不论是实现Runnable接口还是继承Thread类,都是实现public void run()方法。                                                                                                                                              两种实现方法上没有什么不同,区别在于实现的路径。由于java中只能单继承,接口就更加灵活,Thread是runnable的子类,使用runnable可以避免class单一继承的问题。使用runable能够更加清晰的表达数据共享。 都线程之间的共享一个实现类,降低了耦合性,常用于处理共享资源在实际开发中,建议大家使用是是西安Runnable接口的方式创建多线程                                              java中的线程的体现:以对对象的方式体现 Thread类。                                                                                                                    在jdk1.5之后的方式:实现Callable接口以及线程池的方式

    2.2具体实现                                                                                                                                                                                          继承继承Thread类:

  1. 继承Thread类
  2. 重写run方法
  3. 创建线程类的实例:此处创建继承Thread类的对象后,可以直接调用,也可以将此对象当作参数传入Thread对象。
  4. 调用线程类的start方法让线程处于继续状态  

public class ThreadTest {
    public static void main(String[] args) {
        Thread1 thread1=new Thread1();//3
        thread1.start();
    }
}
class Thread1 extends Thread{//1
    @Override
    public void run(){//2
        for(int i=0;i<200;i++) {

            System.out.println("Thread2run "+i);
        }
    }
}

    实现Runnable接口

  1. 自定义线程类
  2. 重写Runnable接口中的方法
  3. 创建实现类对象
  4. 创建线程 此处创建继承Thread类的对象后,可以直接调用,也可以将此对象当作参数传入Thread对象。
  5. 启动线程
ublic class RunnableUmplTest {
    public static void main(String[] args) {
        RunnableImpl r=new RunnableImpl();//3
        Thread t1=new Thread(r);//4
        t1.start();//5
    }
}
class RunnableImpl implements Runnable{//1
    @Override
    public void run(){//2
        for(int i=0;i<20;i++) {
            System.out.println(Thread.currentThread().getName()+":"+i);
        }
    }
}

3、java中多线程的一些简单方法  

Thread():创建新的线程

Thread(Raunnable target):创建新的线程,并传入Raunnable对象

name.start():使该线程就绪

Thread.sleep(long  millis):使当前正在执行的线程以指定的毫秒数暂停。该方法抛出异常,需要做异常的捕获处理。

name.setName():修改该线程的名称

name.getName():获取该线程的名称

Thread.currentThread()返回对当前正在执行的线程对象的引用。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值