线程释义 使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。 一个Thread类实例只是一个对象,像Java中的任何其他对象一样,具有变量和方法,生死于堆上。 Java中,每个线程都有一个调用栈,即使不在程序中创建任何新的线程,线程 ...
分类:
编程语言 时间:
2017-04-05 00:50:21
阅读次数:
214
一:信号量的编程模型 1 package com.yeepay.sxf.test.atomic.test; 2 3 import java.util.concurrent.Semaphore; 4 5 /** 6 * 测试信号量 7 * 相当于有一把可以控制并发量的锁。 8 * 例如银行柜台,只有两 ...
分类:
编程语言 时间:
2016-09-25 14:30:31
阅读次数:
173
一:HashMap >底层存储的是Entry<K,V>[]数组 >Entry<K,V>的结构是一个单向的链表static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; Entry<K,V> next; int h ...
分类:
编程语言 时间:
2016-08-27 19:28:29
阅读次数:
236
写在前面的话 最近一直在边工作边学习分布式的东西,看到了构建Java中间件的基础知识,里面有提到Java多线程并发的工具类,例如ReentrantLock、CyclicBarrier、CountDownLatch... 以前在工作中也有用到过这些实用的工具类,但是了解不是特别深入,借此机会打个卡,好 ...
分类:
编程语言 时间:
2016-08-25 20:20:28
阅读次数:
319
一:锁的原理结构 (1)锁对象内部维护了一个同步管理器的对象AbstractQueuedSynchronizer,AbstractOwnableSynchronizer (2)该对象其实是一个抽象类,具体的锁的管理器继承该抽象类 (3)该抽象类的关键属性有: >Thread exclusiveOwn ...
分类:
编程语言 时间:
2016-08-24 17:13:54
阅读次数:
199
我们都知道,在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,当然也有一些开源的框架提供了这些功能,但是这些依然没有JDK自带的功能使用起来方便。而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java之前的wait()、notify()和 ...
分类:
编程语言 时间:
2016-08-17 19:51:19
阅读次数:
190
一、多线程 1、操作系统有两个容易混淆的概念,进程和线程。 进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。 线程:表示程序的执行流程,是CPU调度执行的基本 ...
分类:
编程语言 时间:
2016-08-07 16:55:50
阅读次数:
402
1.java5的Semaphere同步工具 1.java5的Semaphere同步工具 Semaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,例如,实现一个文件允许的并发访问数。 Semaphore实现的功能就类似银行有6个窗口,1 ...
分类:
编程语言 时间:
2016-04-19 19:34:27
阅读次数:
293
1.多个线程之间共享数据的方式探讨 1.多个线程之间共享数据的方式探讨 1、如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做。 2、如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式来 ...
分类:
编程语言 时间:
2016-04-18 13:27:13
阅读次数:
312