一、基本概念 __进程(process)__:程序的运行实例。进程与程序之间的关系就好比播放中的视频与对应的视频文件。进程是程序向操作系统申请资源(如内存空间和文件句柄)的基本单位。 __线程(thread)__:进程中可独立执行的最小单位。一个进程可以包含多个线程,同一个进程中的所有线程共享该进程 ...
分类:
编程语言 时间:
2020-02-14 22:11:08
阅读次数:
104
1.线程加锁 多个线程需要共享对同一个数据的访问。如果每个线程都会调用一个修改共享数据状态的方法,那么,这些线程将会互相影响对方的运行。在Java语言中,引入对象互斥锁的概念,保证共享数据操作的完整性。每个对象都对应一个可称为“互斥锁”的标记,这个标记保证在任一时刻,只能有一个线程访问对象。就像上一 ...
分类:
编程语言 时间:
2020-02-14 14:40:35
阅读次数:
88
单线程程序:处理流程始终一条线的程序。例如:无论是调用方法,还是执行for循环,if条件分支语句。甚至更复杂的处理,都不会对这条长线产生影响。在单线程程序中,“在某一时间点执行的处理”只有一个。“正在执行程序的主体”称为线程。 多线程程序:由多个线程组成的程序。例如:GUI应用程序,耗时的I/O处理 ...
分类:
编程语言 时间:
2020-02-14 00:55:37
阅读次数:
72
上面是第5讲4:5511-构造thread的时候,传入stacksize代表该线程占用的stack大小如果没指定,默认是0,0代表会忽略该参数,该参数会被jni函数使用;该参数和平台有关5:5411-所以stacksize一般用虚拟机参数指定。6:5014-join..线程A里调用线程B, 即B.j ...
分类:
编程语言 时间:
2020-02-14 00:30:07
阅读次数:
106
1.创建新线程 ①继承自Thread 将类声明为java.lang.Thread的子类并重写run方法 public class MyThread extends Thread { @Override public void run() { //线程体的执行方法 //线程体 for(int i = ...
分类:
编程语言 时间:
2020-02-13 13:04:39
阅读次数:
70
1.引子 在java多线程并发编程中,有八大基础核心。考考你: 看看都有哪八大基础核心呢?它们分别是: 1.创建线程的方式 2.线程启动 3.线程停止 4.线程生命周期 5.线程相关的方法 6.线程相关的属性 7.线程异常处理 8.线程安全 今天我们从第六个基础核心开始:线程相关属性 2.考考你 # ...
分类:
编程语言 时间:
2020-02-12 10:29:03
阅读次数:
85
Synchronized 介绍 synchronized是Java实现同步的一种机制,它属于Java中关键字,是一种jvm级别的锁。synchronized锁的创建和释放是此关键字控制的代码的开始和结束位置,锁是由jvm控制的创建和释放的,正是因为这一点,synchronized锁不需要手动释放,哪 ...
分类:
其他好文 时间:
2020-02-11 10:08:09
阅读次数:
73
在导入java项目的时候,eclipse会出现finish不能点击的情况。 在导入项目的时候,需要注意的几点。 1、项目要从其他的路径导入eclipse的工作路径中,而不是直接从eclipse的工作路径中导入项目。2、因为某个项目名字已经存在,导入不了。需要把项目的.project文件里面的名称修改 ...
分类:
编程语言 时间:
2020-02-11 00:51:44
阅读次数:
109
Java多线程 定时器,在规定的某时间执行某一功能。
分类:
编程语言 时间:
2020-02-11 00:32:41
阅读次数:
66
临界资源问题的原因:某一个线程在对临界资源进行访问时,还没来得及完全修改临界资源的值,临界资源就被其他线程拿去访问,导致多个线程访问同一资源。直观表现为打印结果顺序混乱。 解决方法:加锁 静态方法中用类锁,非静态方法中用对象锁。 1.同步代码段:synchronized(){...}2.同步方法:使 ...
分类:
编程语言 时间:
2020-02-10 10:08:53
阅读次数:
99