多线程
Chen_jay_
阳光帅气
展开
-
volatile关键字解析
volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。内存模型相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行...原创 2018-03-31 22:02:02 · 129 阅读 · 0 评论 -
Thread.currentThread()与this的区别
在自定义线程类时,如果线程类是继承java.lang.Thread的话,那么线程类就可以使用this关键字去调用继承自父类Thread的方法,this就是当前的对象。另一方面,Thread.currentThread()可以获取当前线程的引用,一般都是在没有线程对象又需要获得线程信息时通过Thread.currentThread()获取当前代码段所在线程的引用。尽管this与Thread.curr...原创 2018-03-29 15:03:49 · 157 阅读 · 0 评论 -
Thread中start()和run()的区别
Java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。通过调用Thread类的start()方法来启动一个线程。start() :它的作用是启动一个新线程。通过start()方法来启动的新线程,处于就...原创 2018-03-29 15:22:08 · 198 阅读 · 0 评论 -
Java同步关键字synchronized详解
前言 多线程编程可以极大地提高了效率,但也会带来线程安全问题。比如说多个线程向数据库插入数据,就可能会导致数据库中数据重复。 什么时候会引发线程安全问题 首先我需要了解什么是临界资源?有这样一种资源,在某一时刻只能被一个线程所使用,这种资源可以是各种类型的的资源:一个变量、一个对象、一个文件、一个数据库表等。 举个简单的例子: 现在有两个线程分别从网络上读取数据,然后插入一张数据库表中,要求...原创 2018-12-06 15:59:37 · 4054 阅读 · 0 评论