自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 线程的生命周期及之间的转换.

1、新建状态(new):使用new创建一个线程,仅仅只是在堆中分配了内存。新建状态下,线程还没有调用 start()方法启动,只是存在一个线程对象而已Thread t = new Thread(); //这就是t线程的新建状态2、可运行状态(Runnable):新建状态调用start()方法,进入可运行状态。而这个又分成两种状态,ready和running,分别表示就绪状态和运行状态就绪状态:线程对象调用了 start() 方法,等待 JVM 的调度,(此时该线程并没有运行)运行状态

2020-08-04 18:00:53 204

原创 什么是线程安全问题,为什么会出现?怎么解决

线程安全问题:在操作系统中,进程之间的数据是隔离的。但是注意:如果是一个进程里面多个线程,线程之间是共享一个进程的在Java中,如果使用多个Thread线程启动同一个Runable的线程对象,此时这些线程会共享Runable对象中的属性,就容易出现线程安全问题(非线程安全问题)。什么是线程安全的?如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所

2020-08-04 17:39:22 408

原创 volatile关键字

Volatile是一个类型修饰符,被设计用来修饰被不同线程访问和修改的变量。在程序设计中,尤其是C语言、C++、C#和Java语言中,使用Volatile关键字声明的变量或对象通常拥有和优化和(或)多线程相关的特殊属性。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化机会。Volatile的作用:作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。简单来说就是防止编译器对代码进行优化比如如下程序:XBYTE[2]=0x55;XBYT

2020-08-04 17:22:21 93

原创 synchronized和Lock的区别

Synchronized 和 Lock的概念Synchronized 是Java 并发编程中很重要的关键字,另外一个很重要的是 volatile。Syncronized 的目的是一次只允许一个线程进入由他修饰的代码段,从而允许他们进行自我保护。Synchronized 很像生活中的锁例子,进入由Synchronized 保护的代码区首先需要获取 Synchronized 这把锁,其他线程想要执行必须进行等待。Synchronized 锁住的代码区域执行完成后需要把锁归还,也就是释放锁,这样才能够让其他线.

2020-08-04 17:13:10 196

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除