本月博客排行
-
第1名
龙儿筝 -
第2名
zysnba -
第3名
johnsmith9th - wy_19921005
- sgqt
年度博客排行
-
第1名
宏天软件 -
第2名
青否云后端云 -
第3名
龙儿筝 - gashero
- wallimn
- vipbooks
- wy_19921005
- benladeng5225
- fantaxy025025
- javashop
- qepwqnp
- e_e
- 解宜然
- zysnba
- ssydxa219
- sam123456gz
- ranbuijj
- arpenker
- tanling8334
- kaizi1992
- sichunli_030
- xpenxpen
- gaojingsong
- wiseboyloves
- xiangjie88
- ganxueyun
- xyuma
- wangchen.ily
- jh108020
- zxq_2017
- jbosscn
- lemonhandsome
- luxurioust
- Xeden
- lzyfn123
- forestqqqq
- zhanjia
- nychen2000
- ajinn
- wjianwei666
- johnsmith9th
- hanbaohong
- daizj
- 喧嚣求静
- silverend
- mwhgJava
- kingwell.leng
- lchb139128
- lich0079
- kristy_yy
最新文章列表
进程和线程(Concurrency Tutorial 1)
此刻,在南京参加一个封闭开发,闲来无事也是因为工作需要看Java tutorial.突然想把它翻译下来,仔细想想找出来几个理由:1 最近比较浮躁,什么技术都玩,总是不能深入,希望通过翻译技术文章让自己沉下来。2 还不算难翻译,顺便提高下英语水准和码字速度。本译文纯属笔者练习之用(大家就容许这位“笔者”得瑟一回呗),希望不会误导大家,文中凡是笔者以为重要的或可能翻译有误的名词都括弧对应英 ...
android Thread 数据加载 ProgressDialog 请求超时处理 线程 Handler
package com.qihoinfo;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONObject;
import com.qihoinfo.util.ClientService;
import android.app.Activ ...
Java新特性之-堵塞的队列和栈
做消息通信,消息会不断从网络流中取得,而后台也有线程不断消费。本来我一直是使用一些线程安全标识或方法来控制,后来在网上找到一些java新特性,里面包含了可以用到的堆栈使用,而且是堵塞的,这样至少可以保证一些安全性。
对于堆:
BlockingQueue 不接受 null 元素。试图 add、put 或 offer 一个 null 元素时,某些实现会抛出 NullPointerExcep ...
Java中锁的应用之-ReadWriteLock
上面我们用儿子和父亲做了一个例子,儿子太猖狂了,花钱根本没有谱。
下面我们再做一个例子,讲解ReadWriteLock的使用,例子和刚才差不多,但是又多了一个角色母亲,而且父母只负责监督,不再存钱。
儿子每三秒都会去花钱一次,而父母每秒都在监督这个卡的使用情况。
所有 ReadWriteLock 实现都必须保证 writeLock 操作的内存同步效果也要保持与相关 readLock ...
Java中锁的应用之-Lock
这简直就是一场没有完的玩笑,自从ByteBuffer 到底怎么用?网络编程中一点总结!发出去以后,立马引起关于变量安全的讨论,而自从发布ThreadLocal,静态变量,实例变量,局部变量的线程安全,回复:ByteBuffer 到底怎么用?网络编程中一点总结!后,就开始了关于锁的讨论。我实在是跟不上脚步了。这就是一个基础知识引发的血案啊!
关于Lock的说明,我看大家看JDK就可以了。
...
volatile简单理解
习惯了先举个例子,这个是我学习时遇到的问题。
volatile x = 0;
A,B俩个线程。
都做加一操作x=x+1。
输出结果A线程X=1, B线程X=1.(一种情况)
我自己期望出现的结果:1,2。我的理解是,当A线程改变了x的值,B会及时知道,然后做加一操作,那么等到结果一定是2。可是忘了加操作和赋值是2个操作,x=x+1并非原子性。
分析:
...
Timer实现定时执行
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run()
{
//执行的内容
}
}, 3000);//表示3秒后执行
Timer timer = new ...
开启Thread加载数据完毕后,更新UI线程
这样做的目的是当处理大量数据的时候,可以先显示出Activity,而不是等数据都加载完毕后再显示Activity。
还有一个好处就是:希望界面显示以后再执行某些操作的时候,可以放在这里面来处理
1.onCreate()
Thread thread = new Thread(r);
thread.start();
2.
Runnable r = ne ...
Linux2.2 修改LinuxThreads线程限制
This document describes how to modify the per-process file descriptor limit and task limit of the Linux version 2.2 kernel to increase the number of sockets and threads that a Java server application c ...
java 线程经验总结
1, 为什么wait与notify之前必须要加synchronized?
答案其实很简单,也是为了防止等待-通知机制出现race condition
为什么会出现race condition ?答: 对象在被wait之前已经被另一线程notify , 之后的wait 会永久停止,并导致deadlock(死锁)
理想情况:1, 第一个线程判断该对象是否要wait2, 第一个线程将对象wait3, ...
【Java】synchronized详解
Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。
二、然而,当一个线程访问object的一个synchro ...