并发编程/网络编程/Netty
并发编程,网络编程和Netty学习笔记
LYZ0907
SHOW YOUR CODE.
展开
-
【Java多线程与并发库】07 Java中的13个原子操作类
【Java多线程与并发库】07 Java中的13个原子操作类当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量 i=1, A线程更新 i + 1, B线程也更新 i + 1,经过两个线程操作之后可能 i 不等于 3,而是等于 2。因为 A 和 B 线程在更新变量 i 的时候获得的 i 都是 1,这就是线程不安全的更新操作,通常我们会使用synchronized来解决这个原创 2017-08-20 15:05:59 · 571 阅读 · 0 评论 -
【Java多线程与并发库】06 多个线程之间共享数据的方式探讨
06 多个线程之间共享数据的方式探讨如果线程执行体相同如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有个共享数据,例如,卖票系统就可以这么做。如果线程执行体不同如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式实现这些Runnable对象之间的数据共享:将共享数据封装在另外一个对象中,然后将这个对象逐一传递给各个Runna原创 2017-08-20 13:58:21 · 482 阅读 · 0 评论 -
【Java多线程与并发库】05 线程范围内共享变量ThreadLocal
【Java多线程与并发库】05 线程范围内共享变量ThreadLocalThreadLocal,是Thread Local Variable,线程局部变量。它的功能非常简单,就是为每一个使用该变量的线程都提供一个变量的副本,是每一个线程都可以独立地改变自己的副本,而不会和其他的线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量一样。TheadLocal类提供了3个public方法原创 2017-08-19 19:27:25 · 673 阅读 · 0 评论 -
【Java多线程与并发库】04 传统的线程同步通信技术-synchronized/wait/notify/notifyAll
【Java多线程与并发库】04 传统的线程同步通信技术当线程在系统内运行时,线程调度具有一定的透明性,程序通常无法准确控制线程的轮换执行,但我们可以通过一些机制来保证线程协调运行。我们将通过一个例子学习传统的线程同步通信。 假设系统中有两个线程,分别代表存款者和取款者。系统有一个特殊的要求,每当存款者将钱存入到账户后,取款者立即将钱取出,循环地执行存款、取款,但是不允许存款者连续两次存钱,也不允许原创 2017-08-19 15:35:33 · 821 阅读 · 0 评论 -
【Java多线程与并发库】03 传统线程互斥技术 synchronized
【Java多线程与并发库】03 传统线程互斥技术 synchronized我们会使用模拟打印机的程序来说明线程的互斥技术,如下。打印机出了问题现在我们写一个模拟打印机打印文本的程序。 打印机的打印方法接收到一个字符串,它会依次打印字符串中的每一个字符。 程序如下:/** * 模拟打印机 */class Outputer{ public void output(String cont原创 2017-08-19 11:09:37 · 583 阅读 · 0 评论 -
【Java多线程与并发库】02 传统定时器技术
【Java多线程与并发库应用】02 传统定时器技术定时器和定时器任务的用处: 很简单,通过定时的完成某项任务。关于定时器,主要是涉及到Timer和TimerTask两个类。Timer表示定时器,其常用的方法是schedule,调度方法。TimerTask表示定时任务,它是一个抽象类,其中包含一个抽象方法run。传统定时器技术代码演示单次定时操作/** * description: *原创 2017-08-13 21:55:46 · 738 阅读 · 0 评论 -
【Java多线程与并发库】01 传统线程技术
【Java多线程与并发库应用】01 传统线程技术创建线程的两种传统方式Java可以通过继承Thread类,覆写run方法自定义线程类,或者实现Runnable接口,覆写run方法,并将其传递给Thread的构造方法创建线程对象。继承Thread类创建线程类继承Thread类,覆写run方法。 run方法被称为线程执行体。 可以调用线程对象的start方法启动线程。需要注意的是run方法并不是抽象原创 2017-08-13 21:41:09 · 684 阅读 · 0 评论 -
【Java并发】内存可见性
【Java并发编程】内存可见性1 共享变量在线程之间的可见性 2 synchronized实现可见性 3 volatile实现可见性 指令重排序 as-if-serial语义 volatile使用注意事项 4 synchronized和volatile比较共享变量在线程之间的可见性可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到 共享变量:如果一个变原创 2017-08-08 19:49:33 · 740 阅读 · 0 评论