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

    定义:同时对多项任务加以控制

    多线程:

    进程:一个内存中正在运行的一个应用程序。

    线程:进程中的一个执行流程。

    多线程:

    进程中有两个或两个以上并发的执行流程。

    每个流程是一个线程。

    每个线程都有自己的任务。

    ----------------

    线程的状态:

    1.新建;

    2.就绪;

    3.运行;

    4.阻塞;

    5.死亡;

    ---------------------

    阻塞:

    1.sleep()

    join()

    2.wait()

    3.同步

    -----------------------

    一个应用程序启动一定会启动两个线程。

    主线程和垃圾回收线程。

    ------------------

    创建子线程方法:

    1.继承Thread

    实现run方法 方法内实现任务

    线程名.start(); 来开始线程

    Thread.sleep(1000); 暂停1s

    2.实现Runnable接口

    必须实现run方法 方法内实现任务

    创建线程

    将创建的线程当参数传入一个线程中

    可以共享资源

    多个线程执行一个线程

       

    多个线程处理一件事时加同步锁

    ---------------------

    线程的状态

       

    线程常用方法

    7.join(); 等待该线程种植

    8.interrupt();中断线程

    ----------------------------

    线程同步:

    某一时刻,线程处于线程独占状态。(有且只有一个线程进入方法)

    方式:

    1.同步方法

    public synchronized void run(){

    代码

    }

    在方法返回值类型前加synchronized

    2.同步代码块

    sychronized (对象){

    代码;

    }

    效果与同步方法相同

    ----------------------------

    继承Thread和实现Runnable的区别:

    1.继承Thread类,

    会继承Thread类中的所有方法;

    实现接口 只有 run()方法;

    2.实现 Runnable更有利于资源共享

    (对同一对象操作)

    --------------------------------

    线程优先级:

    1-10 (高)

    -----------------------

  • 相关阅读:
    activity6.0部署BPMN文件的多种方式,直接上代码
    分享一个本地缓存解决方案 Caffeine Cache
    springBoot+Docker+K8s如何远程调试
    记录一次POI导出word文件的细节问题
    Java程序性能优化部分细节
    数据库性能优化-2
    数据库性能优化-1
    一种基于“哨兵”的分布式缓存设计
    转:Spring中的@Transactional(rollbackFor = Exception.class)属性详解
    使用dozer实现对象转换
  • 原文地址:https://www.cnblogs.com/ChengR/p/11756008.html
Copyright © 2011-2022 走看看