线程基本概念

谁借莪1个温暖的怀抱¢ 2021-11-05 04:42 475阅读 0赞

进程:一个正在运行的程序拥有该程序运行的所有资源,包括资源的分配和任务的调度。

线程:在进程中负责具体代码的执行,一个进程至少有一个线程

单线程:在整个程序中只有一个线程,这个线程为主线程

多线程:整个程序不止一个线程,除了主线程其它为子线程

并发:多个任务独立执行,一起执行

同步:同一时刻只能执行一个任务,该任务执行完成之后才能执行下一个任务

异步:一个线程中多个任务同时执行,一起执行

多线程:操作系统同时执行多个任务
创建线程的方式:

  1. 1)继承Thread,重写run()方法
  2. 有开辟线程的能力,资源共享方面不是很方便。
  3. 2)实现runable接口,实现该接口的run()方法
  4. 没有开辟线程的能力,要将创建的对象交给指定线程来运行

线程池:

  1. 帮助我们管理线程,我们只需要将需要执行的任务交给线程池。

线程池会根据任务的个数,执行时长,将不同的任务交给线程池中的线程来执行。

线程死锁:

  1. 多个线程因为竞争资源而造成相互等待,若无外力作用这些进程都将无法向

防止线程死锁:

  1. 1)加锁顺序
  2. 2)加锁时限
  3. 3)加锁检验

线程锁:

  1. 当多个数据访问资源时,为了数据安全,保证当一个线程访问资源时,

其它线程不能访问。等上一个线程访问完成之后才能访问。

同步锁:

  1. synchronized(对象){
  2. //同步代码块: 同一个对象锁下的所有线程,某个时间段内只能有一个线程在执行该代码块
  3. }

在同步代码块内:

  1. wait():当前线程停止运行,被同一个线程锁的其它线程唤醒之后才能接着运行
  2. wait(时长毫秒):当前线程停止运行,当超过指定时长还没有被唤醒,就不等其它线程唤醒了,接着执行。
  3. notify(): 唤醒同一个同步锁中某一个wait()锁
  4. notifyAll(): 唤醒同一个同步锁中所有wait()线程

线程的生命周期:

  1. 创建(new)---就绪(start)---运行状态(等待CPU调用run方法,如果线程在运行时发生阻塞,

进入阻塞状态,之后又返回就绪状态,等待CPU的再次调用)—-结束状态(run方法执行完成)

run和start方法的区别:

  1. start:重新开启了一个线程,不必等待其它线程执行完成。
  2. run:只是调应了一个普通方法,没有开启线程,程序还会按照顺序执行响应代码。

发表评论

表情:
评论列表 (有 0 条评论,475人围观)

还没有评论,来说两句吧...

相关阅读

    相关 线基本概念

    线程的特点和属性 有的进程需要同时做很多事,传统的进程只能串行地执行程序,所以引入了线程来增加并发度。 可以把线程理解为轻量级进程,线程是一个基本的 CPU 执行单元,

    相关 Java线基本概念

    1. java线程池优势 (1)降低系统资源消耗,通过重用已存在的线程,降低线程创建和销毁产生的消耗; (2)提高系统响应速度,当有任务到达时,通过复用已存在的线程,

    相关 线基本概念

    多线程是 java 应用程序的一个特点,掌握 java的多线程也是作为一 java程序员必备的知识。多线程指的是在单个程序中可以同时运行多个同的线程执行不同的任务.线程是程序

    相关 线基本概念

    进程:一个正在运行的程序拥有该程序运行的所有资源,包括资源的分配和任务的调度。 线程:在进程中负责具体代码的执行,一个进程至少有一个线程 单线程:在整个程序中只有一个线程,

    相关 线基本概念

    基本概念 1. 进程 (Process):一个程序运行起来时在内存中开辟一段空间用来运行程序,这段空间包括 heap、stack、data segment 和 code

    相关 线(一)基本概念

    多线程是java应用程序的一个特点,掌握java的多线程也是作为一 java程序员必备的知识。多线程指的是在单个程序中可以同时运行多个 同的线程执行不同的任务.线程是程序...