上篇文章讲述了创建线程的常用方式 本篇主要分析一下Thread和Runnable两种方式创建线程的区别及联系 ?Thread类实现了Runable接口。 ?都需要重写里面Run方法。 ?Thread方式不支持多继承,Runnable方式支持多个实现 ?Runnable更容易实现资源共享,能多个线程同 ...
分类:
编程语言 时间:
2018-10-13 12:53:05
阅读次数:
135
并发编程之多线程基础 线程与进程区别 进程是所有线程的集合,每一个线程是进程中的一条执行路径。 多线程创建方式 1.继承Thread类 重写run方法 代码: class CreateThread extends Thread { // run方法中编写 多线程需要执行的代码 public void ...
分类:
其他好文 时间:
2018-10-08 00:52:20
阅读次数:
177
下载地址:百度网盘下载 目录 ├─0001-3期-开班仪式.rar ├─0002-3期-并发编程专题之多线程基础.rar1 ?3 G6 n- E" d3 C% w ├─0003-3期-并发编程专题之Java内存模型.rar ├─0004-3期-并发编程专题-多线程之间通讯.rar ├─0005-3期 ...
分类:
编程语言 时间:
2018-10-07 19:22:59
阅读次数:
218
?为什么要用到多线程 CPU是以时间片的方式为进程分配CUP处理时间的,如果当一个进程同时要完成几件事的时候,如当从网上下载文件的时候,需要一边下载一边显示进度而且还要一边保存,如果按照单线程的思想,那么这种情况就只能一个完成之后才能继续下一个,如果将CPU看成有100个时间片的话,那么完成一件事可 ...
分类:
编程语言 时间:
2018-09-30 20:10:08
阅读次数:
181
进程和线程: 一个程序运行后至少有一个进程,一个进程里面可以包含多个线程,但是至少要包含一个线程。 线程的创建和启动: 方式1:继承Thread类创建线程类,步骤 1.定义Thread类的子类,重写该类的run()方法,该run()方法的方法体就代表了线程需要完成的任务,因此run()方法也被称为线 ...
分类:
编程语言 时间:
2018-09-18 11:19:24
阅读次数:
136
1、死锁含义 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。例如,在某一个计算机系统中只有一台打印机和一台输入 设备,进程P1正占用输入设备,同时又提出使用打印机的请求,但此时打印机正被进程P2 所占用,而P2在未释放打印机之前,又提出请求使用正被P ...
分类:
编程语言 时间:
2018-09-10 21:54:40
阅读次数:
244
1、sleep()和wait()方法异同 sleep方法和wait方法都可以用来放弃CPU一定的时间,不同点在于如果线程持有某个对象的监视器,sleep方法不会放弃这个对象的监视器,wait方法会放弃这个对象的监视器1)Thread.sleep():方法导致了程序暂停执行指定的时间,让出cpu该其他 ...
分类:
编程语言 时间:
2018-09-10 21:20:15
阅读次数:
277
1、线程相关概念 1)、线程与进程的区别 线程是操作系统调度的最小单元,也叫轻量级进程,而进程是操作系统中的应用程序,在进程中可以创建多个线程。 2)、上下文切换 我们知道现代处理器都是多核的,几核处理器只能同时处理几个线程,多线程执行程序看起来是同时进行,实际上是CPU在多个线程之间快速切换执行, ...
分类:
编程语言 时间:
2018-08-12 00:31:25
阅读次数:
237
Java基础教程:多线程基础(2)——线程间的通信 使线程间进行通信后,系统之间的交互性会更强大,在大大提高CPU利用率的同时还会使程序员对各线程任务在处理的过程中进行有效的把控与监督。 线程间的通信 思维导图 等待中 等待/通知机制 不使用等待/通知机制 我们可以使用使用sleep()与 whle ...
分类:
编程语言 时间:
2018-08-03 00:58:20
阅读次数:
183
Java基础教程:多线程基础(3)——阻塞队列 快速开始 引入问题 生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。 模拟情景 这里我们实现如下的情况的生产-消费模型: 生产者不断交替地生产两组数据“姓名--1-->内容 ...
分类:
编程语言 时间:
2018-08-02 23:00:56
阅读次数:
212