Java开发中可以防止界面假死的刷新代码
代码如下:
try { // 创建一个线程 Thread thread = new Thread() { public void run() { int i = 0; while(true){ final long start = System.currentTimeMillis(); try { Thread.sleep(1); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } final int a = i; if (!Display.getDefault().isDisposed()) { Runnable runnable = new Runnable() { public void run() { processModel.setProcessName(start + "---" + a); } }; Display.getDefault().syncExec(runnable); } i++; } } }; thread.start(); } catch (Exception e) { e.printStackTrace(); }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
Java源码解析阻塞队列ArrayBlockingQueue介绍
Java的阻塞队列,在实现时,使用到了lock和condition,下面是对其主要方法的介绍. 首先看一下,阻塞队列中使用到的锁. /** Main lock guarding all access **/ final ReentrantLock lock; /** Condition for waiting takes **/ private final Condition notEmpty; /** Condition for waiting puts **/ private final
-
java集合框架 arrayblockingqueue应用分析
Queue ------------ 1.ArrayDeque, (数组双端队列) 2.PriorityQueue, (优先级队列) 3.ConcurrentLinkedQueue, (基于链表的并发队列) 4.DelayQueue, (延期阻塞队列)(阻塞队列实现了BlockingQueue接口) 5.ArrayBlockingQueue, (基于数组的并发阻塞队列) 6.LinkedBlockingQueue, (基于链表的FIFO阻塞队列) 7.LinkedBlockingDeque, (
-
Java源码解析ConcurrentHashMap的初始化
首先看一下代码 private final Node<K,V>[] initTable() { Node<K,V>[] tab; int sc; while ((tab = table) == null || tab.length == 0) { // 第一次检查 if ((sc = sizeCtl) < 0) Thread.yield(); // lost initialization race; just spin else if (U.compareAndSwapInt
-
Java源码解析之可重入锁ReentrantLock
本文基于jdk1.8进行分析. ReentrantLock是一个可重入锁,在ConcurrentHashMap中使用了ReentrantLock. 首先看一下源码中对ReentrantLock的介绍.如下图.ReentrantLock是一个可重入的排他锁,它和synchronized的方法和代码有着相同的行为和语义,但有更多的功能.ReentrantLock是被最后一个成功lock锁并且还没有unlock的线程拥有着.如果锁没有被别的线程拥有,那么一个线程调用lock方法,就会成功获取锁并返回.
-
Java源码解析TreeMap简介
TreeMap是常用的排序树,本文主要介绍TreeMap中,类的注释中对TreeMap的介绍.代码如下. /** * A Red-Black tree based {@link NavigableMap} implementation. * The map is sorted according to the {@linkplain Comparable natural * ordering} of its keys, or by a {@link Comparator} provided at
-
Java源码解析阻塞队列ArrayBlockingQueue功能简介
本文基于jdk1.8进行分析. 阻塞队列是java开发时常用的一个数据结构.首先看一下阻塞队列的作用是什么.阻塞队列的作用,从源码中类的注释中来了解,是最清晰准确的. ArrayBlockingQueue是一个用数组实现的有界阻塞队列.提供FIFO的功能.队列头上的元素是在队列中呆了最长时间的元素,队列尾上的元素是在队列中呆了时间最短的元素.新元素会插入在队列尾部,从队列获取元素时会从队列头上获取. 这是一个传统的有界队列,在这个有界队列里,一个固定大小的数组用来保存生产者产生的元素和消费者获取
-
详细分析Java并发集合ArrayBlockingQueue的用法
在上一章中,我们介绍了阻塞队列BlockingQueue,下面我们介绍它的常用实现类ArrayBlockingQueue. 一. 用数组来实现队列 因为队列这种数据结构的特殊要求,所以它天然适合用链表的方式来实现,用两个变量分别记录链表头和链表尾,当删除或插入队列时,只要改变链表头或链表尾就可以了,而且链表使用引用的方式链接的,所以它的容量几乎是无限的. 那么怎么使用数组来实现队列,我们需要四个变量:Object[] array来存储队列中元素,headIndex和tailIndex分别记录队列
-
Java通过XPath获取XML文件中符合特定条件的节点
在Java解析XML文件的过程中,有时需要获取符合某些特定条件的节点,以下是实现代码. import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.eclipse.swt.widgets.Shell; import org.ec
-
Java源码解析CopyOnWriteArrayList的讲解
本文基于jdk1.8进行分析. ArrayList和HashMap是我们经常使用的集合,它们不是线程安全的.我们一般都知道HashMap的线程安全版本为ConcurrentHashMap,那么ArrayList有没有类似的线程安全的版本呢?还真有,它就是CopyOnWriteArrayList. CopyOnWrite这个短语,还有一个专门的称谓COW. COW不仅仅是java实现集合框架时专用的机制,它在计算机中被广泛使用. 首先看一下什么是CopyOnWriteArrayList,它的类前面
-
Java源码解析阻塞队列ArrayBlockingQueue常用方法
本文基于jdk1.8进行分析 ArrayBlockingQueue的功能简介参考https://www.jb51.net/article/154211.htm. 首先看一下ArrayBlockingQueue的成员变量.如下图.最主要的成员变量是items,它是一个Object类型的数组用于保存阻塞队列中的元素.其次是takeIndex,putIndex,count,分别表示了从队列获取元素的位置,往队列里放元素的位置和队列中元素的个数.然后是lock,notEmpty和notFull三个和锁相
随机推荐
- 用vbscript得到注册表中是否存在某个值
- 基于ISAPI Rewrite软件实现IIS图片防盗链方法
- AJAX使用post发送数据xml格式接受数据
- python使用urllib模块开发的多线程豆瓣小站mp3下载器
- C语言中const与指针使用方法总结
- css 二级菜单 实现代码集合 修正版
- Nginx缓存Cache的配置方案以及相关内存占用问题解决
- Python实现的检测网站挂马程序
- js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
- 深入理解JavaScript系列(42):设计模式之原型模式详解
- Linux-Mandrake 8.0最新 Beta 1版本
- CentOS 5.4系统下安装VPN(pptp) 适用于Linux服务器
- wince程序防止创建多个实例实现互斥作用
- 基于Java实现缓存Cache的深入分析
- Android四种数据存储的应用方式
- Android编程实现从字符串中查找电话号码的方法
- Java分层概念详解
- .net后台获取html控件值的2种方法
- 回归正途,用Opteron 144打造高性价比服务器
- python 读取DICOM头文件的实例