zoukankan      html  css  js  c++  java
  • Java 多线程(Thread)学习

    多线程:就是进程的扩展,实现并发。一个进程可以包含多个线程,进程一般是由操作系统控制,而线程就是由程序员控制的,所以作为编程人员做好线程是我们的重点。

    线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。

    进程是操作系统同时执行多个任务,其实也不是同时执行,就是把多个任务分成就绪、运行-->就绪、运行切换,CPU执行速度太快,所以感觉是同时执行。

    多线程是指在同一程序中有多个顺序流在执行,从而实现并发性。

    创建线程有两种方法:继承Thread;实现Runnable接口;通过匿名内部类实现Runnable接口

    1.继承Thread,然后重写run()方法,再然后就是启动线程.start().

    Class Thread1 extends Thread{

    @Override
    public void run() {}

    }

    2.实现Runnable接口,然后重写run()方法,再然后就是启动线程.start().

    Class Thread2 implements Runnable{
    @Override
    public void run() {}
    }

    Thread2 th=new Thread2();
    Thread th1=new Thread(th);//创建线程对象
    th1.start();//启动线程

    3.通过匿名内部类实现Runnable接口,然后在匿名内部类中重写run()方法,再然后就是启动线程.start().

    Thread th=new Thread(new Runnable(){

    @Override
    public void run() {}

    });

    线程休眠

    Thread.sleep(500);//500表示500毫秒
    Thread.currentThread().getName()//获得线程默认的名字
    Thread.currentThread().SetName("th1")//设置线程名

    Thread和Runnable的区别

    1.如果一个类继承Thread,则不适合资源共享。但是如果实现了Runnable接口的话,则很容易的实现资源共享。

    继承Thread 创建的对象是单独的线程,而实现Runnable其实是同一个线程。

    2.实现Runnable接口比继承Thread类的优势:

    1):适合多个相同的程序代码的线程去处理同一个资源

    2):可以避免java中的单继承的限制

    3):增加程序的健壮性,代码可以被多个线程共享,代码和数据独立

    为了不让同一个对象不被多个线程同时访问,引入锁的概念(Synchronized),加锁之后当这个对象被线程1访问就会上锁,之后的线程想访问只能等线程1访问结束。引入锁保证了安全性。

  • 相关阅读:
    java
    DevExpress学习1
    D 动态获取服务器访问路径
    D10 Sping Boot 入门 Sping框架--Java Web之文件操作--上传和下载
    D08 Sping Boot 入门 Sping框架--Java Web之JSP
    D07 Sping Boot 入门 Sping框架--Java Web之书城项目(二)实现用户登录功能
    D06 Sping Boot 入门 Sping框架--Java Web之书城项目(二)实现用户注册功能
    D04 Sping Boot 入门 Sping框架--Java Web之JavaEE的三层架构
    D03 Sping Boot 入门 Sping框架--Java Web之HTTP协议
    D02 Sping Boot 入门 Sping框架--Java Web之Servlet
  • 原文地址:https://www.cnblogs.com/feipengting/p/7528977.html
Copyright © 2011-2022 走看看