刘腾腾

与其临渊羡鱼,不如退而结网。

【Java并发】Java内存模型和线程安全

Java内存模型1、原子性 指一个操作是不可中断的,即使实在多个线程一起执行的时候,一个操作一旦开始,就不会被其它线程干扰。 i++是原子操作吗? 答案是否定的,两个线程对i++进行操作,线程1读到i++为2,线程2也进行操作读到i++为2,最终i=2,但是两个线程同时对i++进行操作,i应...

2017-06-30 16:41:32

阅读数:689

评论数:2

【Java并发】相关概念

一.概念 1、 为什么要并发? 比如因为IO操作遇到了阻塞,CPU可以转去执行其他线程,这时并发的优点就显示出来了:更高效的利用CPU,提高程序的响应速度。 Java的线程机制是抢占式的,会为每个线程分配时间片。2、 并行与并发 1) 并发就是在单核处理中...

2017-06-30 13:40:59

阅读数:583

评论数:4

多线程编程(六)--Callable&Future

Thread类和Runnable接口和Java内存管理模型使得多线程编程简单直接。但是Thread类和Runnable接口都不允许声明检查型异常,也不能定义返回值。              Callable接口和Future接口的引入以及它们对线程池的支持优雅的解决了这两个问题。        ...

2015-06-29 08:09:37

阅读数:2163

评论数:7

多线程编程(五)--线程池

JDK 1.5之后加入了Java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。   一、池的由来          拿数据库来举例子:每当一个请求到达就创建一个新的链接,但当有大量请求并发访问时,就会不断地创建和...

2015-06-29 08:09:01

阅读数:2623

评论数:7

多线程编程(四)--线程同步

当使用多个线程来访问同一个数据时,就容易出现线程安全的问题。例如,银行取钱。当我们去自动取款机取钱时,正好另一个人转账,即多个线程修改同一数据,这时就容易出现线程安全问题。 线程安全 /** * 账户类,该类封装了账户编号和余额两个属性 * @author Emily-T * */ p...

2015-06-28 10:48:21

阅读数:2186

评论数:8

多线程编程(三)--创建线程之Thread VS Runnable

前面写过一篇基础的创建多线程的博文:http://blog.csdn.net/liutengteng130/article/details/20036517 那么本篇博文主要来对比一下这两种创建线程的区别。   继承Thread类:          还拿上篇博客的例子来说:           ...

2015-06-27 20:41:39

阅读数:2335

评论数:7

多线程编程(二)--进程&&线程

看完上篇博文的介绍后,大家应该大概了解进程和线程的由来。有了这样一个背景我们进一步来看一下线程和进程。   引入进程:进程可以提高系统的并发性,提高CPU的使用率,从而提高程序的性能。在以前单道操作系统中,一次只执行一个程序,这样执行效率很低,资源得不到充分的利用。所以后来多道操作系统出现了,由于...

2015-06-27 19:27:55

阅读数:1118

评论数:6

多线程编程(一)--进程和线程之由来

Java多线程基础:进程和线程之由来   在前面,已经介绍了Java的基础知识,现在我们来讨论一点稍微难一点的问题:Java并发编程。当然,Java并发编程涉及到很多方面的内容,不是一朝一夕就能够融会贯通使用的,需要在实践中不断积累。由于并发肯定涉及到多线程,因此在进入并发编程主题之前,我们先来...

2015-06-27 15:42:35

阅读数:1126

评论数:5

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