
多线程
MINKI_W
莽呀
展开
-
JavaSE多线程《一》
一· 首先了解一下什么是进程?线程? 进程:操作系统中一个程序的执行周期称为一个进程。 线程:一个程序同时执行多个任务。通常,每一个任务就称为一个线程。与进程相比较,线程更"轻量级",创建、撤销一个线程比启动一个新进程开销要小的多。没有进程就没有线程,进程一旦终止,其内的线程也将不复存在。 线程和进程的区别是什么? 多进程与多线程区别:本质区别在于,每个进程拥有自己的一整套变量,而线程则共享数据。...原创 2019-07-14 23:14:39 · 155 阅读 · 0 评论 -
JavaSE多线程《二》
JavaSE多线程《一》回顾 三·多线程的常用操作方法 3.1 线程的命名于取得命名 多线程的运行状态是不确定的,所以对于多线程操作必须有一个明确标识出线程对象的信息,这个信息往往通过名称来描述。在Thread类中提供有如下的线程名称方法: 要想取得线程的对象,在Thread类中提供有一个方法取得当前线程对象: /** * Returns a reference to the currently...原创 2019-07-15 23:54:13 · 190 阅读 · 0 评论 -
JavaSE多线程《三》
往期回顾: JavaSE多线程《一》 JavaSE多线程《二》 3.5 线程停止 多线程中有三种方式可以停止线程。 设置标记位,可以使线程正常退出。 使用stop方法强制使线程退出,但是该方法不太安全所以已经被废弃了。 使用Thread类中的一个 interrupt() 可以中断线程。 首先示例,利用设置标记为flag 使线程停止: 代码如下: package com.revisi...原创 2019-07-20 16:51:57 · 191 阅读 · 0 评论 -
JavaSE多线程《四》(汇总)
1.进程和线程: 进程是系统资源分配的基本单位 线程是任务分配的基本单位 2.Java中实现多线程的四种方式: a.继承 Thread 类 b.实现 Runnable接口 c.实现Callable接口 d.线程池 (推荐) 3.线程停止的三种方法: a.stop()方法 b.设置标记类 c.interrupt()方法 (synchronized不响应中断) 4.多线程的常用操作方式: a. sl...原创 2019-07-31 00:10:08 · 141 阅读 · 0 评论 -
JAVA多线程的一个常见面试题
synchronized和ReentrantLock的关系与区别 1.都属于独占锁(任意一个时刻只有一个线程获取到资源) 都支持可重入锁 2.synchronized是关键字,JVM层面实现的 ReentrantLock是Java语言层面实现的"管理"; 3.ReentrantLock具备一些synchronized不具备的功能 响应中断、非阻塞式获取锁、支持超时获取锁 公平锁:等待时间最长的线程...原创 2019-07-31 00:12:39 · 127 阅读 · 0 评论 -
谈谈ConcurrentHashMap是如何实现高效且线程安全的
什么是哈希表??? 哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。 哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。这是对于简单的键的情况,我们将其扩展到可以处理更加复杂的类型的键。 我们先来了解一下ConcurrentHashM...原创 2019-07-26 00:35:10 · 760 阅读 · 0 评论 -
什么是可重入锁?什么是不可重入锁?
啥也不说了先来看一段代码: public class Lock{ private boolean isLocked = false; public synchronized void lock() throws InterruptedException{ while(isLocked){ wait(); ...原创 2019-08-02 00:06:29 · 749 阅读 · 1 评论