本月博客排行
-
第1名
wy_19921005 -
第2名
mft8899 -
第3名
benladeng5225 - Anmin
- wddpwzzhao123
年度博客排行
-
第1名
龙儿筝 -
第2名
宏天软件 -
第3名
benladeng5225 - wy_19921005
- vipbooks
- kaizi1992
- e_e
- tanling8334
- sam123456gz
- arpenker
- 青否云后端云
- zysnba
- fantaxy025025
- xiangjie88
- wallimn
- lemonhandsome
- jh108020
- ganxueyun
- Xeden
- xyuma
- wangchen.ily
- zhanjia
- johnsmith9th
- zxq_2017
- forestqqqq
- jbosscn
- daizj
- xpenxpen
- 喧嚣求静
- kingwell.leng
- lchb139128
- kristy_yy
- jveqi
- javashop
- lzyfn123
- sunj
- yeluowuhen
- ajinn
- lerf
- silverend
- chenqisdfx
- xiaoxinye
- flashsing123
- lyndon.lin
- bosschen
- zhangjijun
- sunnylocus
- lyj86
- paulwong
- sgqt
最新文章列表
线程池+队列
笔记:自己实现的线程池+队列。
package org.vic.thread.core;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedList;
import java.util.concurrent.locks.Condition;
import java.util.concurren ...
多线程事务回滚
<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->
周五在java群里看到了一个有意思的问题,周末就顺便实现了一下,需求如下:
考察一个多线程的场景,一个Http Request的controller有10个线程同时并行处理,要求:
1) 主线程必须等待1 ...
ReentrantLock 公平锁和非公平锁
对于ReentrantLock,一般我们在调用无参构造函数的时候,构造的是非公平锁,当前类也存在一种可以指定锁类型的构造方法,即 ReentrantLock(boolean fair),ReentrantLock锁的实现是通过内部类FairSync和NonfairSync继承AQS实现的。
我们今天主要讨论下这两个内部类,从而探讨下代码级别是如何实现公平锁和非公平锁的。
先看ReentrantLo ...
ThreadLocal与线程私有变量的不同
线程变量在以下情况下是安全的:
1. 线程私有变量:每一个线程都是独立的生成实例。例如:
count是TestRunable的私有变量,a和b都是独立的线程实例,count是线程安全的。
public class TestRunable implements Runnable {
private int count=0;
@Override
public void run() ...
thread interrupt
Thread thread4 = new Thread(){
public void run(){
try {
//synchronized(this){
//this.wait(10000);
System.out.println("start A4");
System.out.println("A4 inter ...
黑马程序员_java08_多线程
转载于:http://www.itxuexiwang.com/plus/view.php?aid=148
线程是程序中可以并行执行的任务。 java运行系统总是选当前优先级最高的处于就绪状态的线程来执行。如果几个就绪线程有相同的优先级,将会用时间片方法轮流分配处理机。 进程与线程的区别 进程属于一个独立的运行程序,线程是程序里面的一个分支。许多个线程组成一个程序的运行。 创建线程的两种方式 (1)线 ...
查找CPU占用高的那个线程
问题描述:
生产环境下的某台tomcat7服务器,在刚发布时的时候一切都很正常,在运行一段时间后就出现CPU占用很高的问题,基本上是负载一天比一天高。
问题分析:
1,程序属于CPU密集型,和开发沟通过,排除此类情况。
2,程序代码有问题,出现死循环,可能性极大。
问题解决:
1,开发那边无法排查代码某个模块有问题,从日志上也无法分析得出。
2,记得原来通过strace跟踪的方法解决了一台PHP ...
经典同步模型-生产者消费者java代码实现
package cn.smallbug.thread;
/**
* 资源定义
*
* @timestamp Feb 13, 2016 11:55:10 PM
* @author smallbug
*/
class Resource {
private String name;
private int age = 0;
private boolean fl ...
java线程安全和锁机制详解
在开始这篇blog之前应该先了解几个概念:
临界区:
临界区指的是一个访问共用资源(例如:共用设备或是共用存储器)的程序片段,而这些共用资源又无法同时被多个线程访问的特性。当有线程进入临界区段时,其他线程或是进程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共用资源是被互斥获得使用,例如:semaphore。只能被 ...
线程同步辅助类CountDownLatch
《线程同步辅助类CountDownLatch》
Java5提供了一个非常有用的线程同步辅助类型,java.util.concurrent.CountDownLatch。假设有多个线程正在执行异步操作,主线程希望这些异步线程全部完成之后再继续执行后续任务,那么使用CountDownLatch将非常方便。当这些异步任务并未全部执行完成之前,主线程会一直阻塞,直至所有的异步任务完成为止。
...
有关semaphore 的死锁的例子。
下面是关于semaphore 的死锁的例子。主要自己学习thinking in java 上面的semaphore的例子的时候不仔细。结果将checkout() 和 checkin() 方法都加上了synchronized. 导致了死锁的问题。代码如下:
public class SemaphoreDemo {
final static int SIZE = 10;
public sta ...
线程中多模块共享数据
之前项目中经常会碰到线程共享数据的场景,简单总结下:
1、通常情况会用java.lang.ThreadLocal来实现线程范围的共享变量,线程内共享,线程外独立;
2、ThreadLocal的作用和目的:用于实现线程内的数据共享,即对于相同的程序代码,多个模块在同一个线程中运行时要共享一份数据,而在另外线程中运行时又共享另外一份数据。
应用场景:订单处理、银行转账;
3、demo
pa ...