zoukankan      html  css  js  c++  java
  • JAVA-多线程

    多线程

    1、基本概念

      1.进程:独立运行的程序

        进程至少包含一个主线程

        进程中可以包含多个线程

      2.线程:进程中进行的流程

        多个并发的线程就是多线程

    2、实现方法

      1.继承Thread类  

        1 重写run()里调用需要分线程执行的代码

        2 调用start()  start表示用新线程启动run()

      2.实现Runnable接口  目的:解决java单继承的问题

        1 实现run()

        2 通过Thread的构造方法,把Runnable实例化

        3 调用start()启动

    3、线程的生命周期

      1.新建状态  构建了一个实例,但没开始执行

      2.可执行状态  调用了start方法,等待开始运行

      3.运行状态  cpu执行run()中的代码

      4.阻塞状态  

        调用sleep()  休眠时间,单位是毫秒

        调用join()  处于运行状态的a线程如果调用了其他线程的join()  那么a线程处于阻塞状态

                当目标线程执行完毕才结束阻塞,再继续运行

        执行I/O操作

      5.死亡状态  线程执行完毕

    4、线程同步

      1. synchronized 关键字

      2.作用  防止共享对象在并发访问时出现错误

           确保共享对象在同一时刻只被一个线程访问

      3.方法  同步方法   ( 修饰符 synchronized 返回类型 方法名(参数列表){} )

           同步代码块  synchronized(对象或this){同步运行的代码}

                    Object起到共享锁标志作用

  • 相关阅读:
    Cf的一些总结
    Goodbye 2019
    牛客多校第8场 A题
    19牛客多校第二场 H题
    Hihocoder1673
    记一次根据图片原尺寸设置样式,并进行缩放和拖拽
    鱼骨时间轴案例(转自CSDN,原文链接附于文中)
    jQuery横向上下排列鱼骨图形式信息展示代码时光轴样式(转自CSDN,原文链接附于文中)
    mxGraph实现鱼骨图(因果图)(转自CSDN,链接附于文中)
    erlang win64位包下载链接
  • 原文地址:https://www.cnblogs.com/jingfengling/p/5915480.html
Copyright © 2011-2022 走看看