substance
substance
全部文章
未归档
题解(7)
归档
标签
去牛客网
登录
/
注册
substance的博客
做最好的自己
全部文章
/ 未归档
(共176篇)
线程的退出
背景:一般的线程不需要我们去终止,正常的线程会在代码执行完毕之后自动的退出。但是一些特殊的线程,比如一个一直需要监视一个系统的业务逻辑的线程,我们现在需要手动的停掉监控线程,这时我们就可以让线程退出。 方法1(常用的方法):使用标志字段,在线程的外面使用一个循环嵌套住,接着在主线程中修改标志字段。但...
2022-04-17
0
284
线程类的常见方法
sleep方法:释放cpu资源,但是不会释放锁; yeild方法:释放cpu的资源,但是会保留cpu的执行资格;() public class YeildTest { //yeild方法的含义就是线程释放cpu的执行权限,但是依旧保留竞争cpu的资格 public static ...
2022-04-16
0
257
wait()与notify()
public class WaitTest { //wait,notify方法 //wait,notify方法在使用的时候有两个注意事项:1.线程的阻塞与唤醒是通过锁来实现的;即使用锁来调用wait,notify方法;2这种方式,必须要求 //锁对象在这个线程之中,并且一个线...
2022-04-16
0
283
线程重入
线程重入:是指线程在获得这个锁之后,再次使用这个锁就不会再被这个锁所阻塞住。 线程重入,原先我们对死锁的概念只是认为在多个线程之间;那么,如果单个线程,需要对两把锁访问,并且满足以下四个条件:互斥使用资源1、资源二;不可抢占资源1,资源二;请求与保持:即请求锁2时依旧保持锁1的占用;锁之间构成一个闭...
2022-04-15
0
292
死锁
死锁的含义:两个线程同步执行,线程A需要使用线程B所占用的锁,线程B需要使用线程A想要占用的锁。此时就会产生死锁(并发执行的情况下会发生) 死锁产生的条件: 1.互斥使用:资源统一时刻只能被一个线程所占用 2.不可抢占:资源只能由资源的拥有者释放,不能被资源的请求者所侵占。 3.请求和保持:线程在请...
2022-04-15
0
370
对象头
对象头主要是由MarkWord(锁的信息和分代信息)标志字段和KClass Pointer类型指针两部份构成。 背景:锁升级的过程包括四个锁: 1.1无锁:无线程使用是数据时,就没有必要上锁。 1.2偏向锁:只有一个线程时,同样不上锁,但是这个数据会偏向这个线程。 1.3轻量锁:少量线程争抢时,对于...
2022-04-13
0
224
synchronized原理
//简单的小例子观察字节码文件的差异: package com.ydlclass.lock; public class Test { public static void main(String[] args) { synchronized (Test.class){ ...
2022-04-13
0
304
java锁机制
synchronize:并发编程中的元老级角色,jdk1.6之前的由于上锁的操作的性能开销太大,所以这种锁又叫做重量级锁,之后jdk1.6以后引入偏 向锁和轻量级锁对其进行了一系列的优化。 synchronize可以锁的对象包括:成员方法,静态方法,代码块(类对象,调用该方法的对象this,对象)...
2022-04-13
0
299
实现线程安全的几种方法
1.数据不可变:由于一切不可变的对象是线程安全的,所以对于一些对象自身就是线程安全的:final修饰的基础数据类型。字符串类型,以及final修饰的引用数据类型不是线程安全的;这些不可变的对象成为(immutable)。 2.互斥同步:互斥是方法,同步是目的;同步是指:多个线程并发的访问共享的数据时...
2022-04-13
0
639
线程安全(窗口售票小程序)
package com.ydlclass.thread; public class WindowSellTickets implements Runnable{ private static int count = 100; String name; public Win...
2022-04-10
0
402
首页
上一页
6
7
8
9
10
11
12
13
14
15
下一页
末页