Java线程Exchanger实例源码介绍



Java线程Exchanger实例源码介绍。Exchanger能够在两个线程之间交换数据,只能是2个线程,他不支持更多的线程之间互换数据。当线程A调用Exchange对象的exchange()方法后,他会陷入阻塞状态,直到线程B也调用了exchange()方法,然后以线程安全的方式交换数据,之后线程A和B继续运行。

public class ThreadLocalTest {

public static void main(String[] args) {
Exchanger<List<Integer>> exchanger = new Exchanger[......]

Read more

Java线程立刻处理刚完成的任务实例源码介绍



Java线程立刻处理刚完成的任务实例源码介绍。ExecutorService的invokeAll()方法可以一次启动多个线程,并将这些线程的执行结果放入一个List。这是一个很方便的方法,但有不足之处,那就是必须等待所有线程全部结束之后,才会返回List,之后才能处理线程的结果。若有些线程执行很快,比如几秒就结束了,另一些线程执行很慢,要几小时,那么短时间线程的执行结果仍然无法立刻获取,必须等几小时之后,所有线程都结束了,他们的执行结果才可用。

改进方法是,利用Future对象的isDone()方法,通过循环随时检测是否有线程执行完毕,一旦发现结束的线程,就能够立刻处理他的结果。例子如下[......]

Read more

CompletionService java线程介绍

CompletionService java线程介绍,在使用ExecutorService启动多个Callable之后,每个Callable都会产生一个Future,就要把多个Future存入一个线性表,用于后面的处理数据。也有更复杂的情况,有5个生产者线程,每个生产者线程都会创建任务,所有任务的Future都存放到同一个线性表中。另有一个消费者线程,从线性表中取出Future进行处理。CompletionService正是为此而存在,是一个更高级的ExecutorService,它本身自带一个线程安全的线性表,无需用户额外创建。它提供了2种方法从线性表中取出结果,poll()是非阻塞的,若目[......]

Read more

ARM汇编程序逻辑控制实例

ARM汇编程序逻辑控制实现源码实例教程。

AREA Example4,CODE,READONLY ; 声明代码段Example4
  ENTRY    ; 标识程序入口
  CODE32    ; 声明32位ARM指令
  
START  ; if(x>y) z=100;
  ;  else  z=50;
  ; 设x为R0,y为R1,z为R2 (x、y、z均为无符号整数)
  MOV  R0,#76  ; 初始化x的值
  MOV  R1,#243  ; 初始化y的值
  CMP  R0,R1  ; 判断x>y?
  MOVHI R2,#100  ; x[......]

Read more

AMR汇编程序之模式切换方法举例说明

AMR汇编程序-模式切换方法举例说明。

定义堆栈的大小的实现
USR_STACK_LEGTH EQU 64
SVC_STACK_LEGTH EQU 0
FIQ_STACK_LEGTH EQU 16
IRQ_STACK_LEGTH EQU 64
ABT_STACK_LEGTH EQU 0
UND_STACK_LEGTH EQU 0
AREA Example5,CODE,READONLY ; 声明代码段Example5
ENTRY ; 标识程序入口
CODE32 ; 声明32位ARM指令
START MOV R0,#0
MOV R1,#1
MOV R2,#2
MOV[......]

Read more

ARM汇编指令如何与C语言的混合编程实例源码

ARM汇编指令如何与C语言的混合编程实例源码。ARM的应用实例源码介绍。

1。汇编程序实例
; 起动文件。初始化C程序的运行环境,然后进入C程序代码。
IMPORT |Image$$RO$$Limit|
IMPORT |Image$$RW$$Base|
IMPORT |Image$$ZI$$Base|
IMPORT |Image$$ZI$$Limit|
IMPORT Main ; 声明C程序中的Main()函数
AREA Start,CODE,READONLY ; 声明代码段Start
ENTRY ; 标识程序入口
CODE32 ; 声明32位ARM指令

Rese[......]

Read more

IT技术类的网站有哪些中文网址汇总

IT技术类的网站有哪些中文网址汇总,学习IT技术应该经常上的网站介绍。

1.chinaunix.net论坛

http://bbs.chinaunix.net/

zeliangzhang w95080

2.代码研究所

http://www.180code.com

3.linux代码

http://lxr.linux.no/ident

4.飞凌技术论坛

http://bbs.witech.com.cn

zhangzl892

5.看雪论坛

http://bbs.pediy.com/

zeliang

6.华清远见

http://www.embe[......]

Read more

Linux如何查看系统当前时间以及修改时间的方法

Linux如何查看系统当前时间?查看时区方法等。

Linux查看与修改Linux的时区

1. 查看当前时区
命令 : “date -R”
2. 修改设置Linux服务器时区
方法 A
命令 : “tzselect”
方法 B 仅限于RedHat Linux 和 CentOS
命令 : “timeconfig”
方法 C 适用于Debian
命令 : “dpkg-reconfigure tzdata”
3. 复制相应的时区文件,替换系统时区文件;或者创建链接文件
cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
例如[......]

Read more

Java线程之fork/join框架实例介绍

Java线程之fork/join框架实例介绍。fork/join框架是什么?其是就是多线程的方式进行分治法来解决问题。fork指的是将问题不断地缩小规模,join是指根据子问题的计算结果,得出更高层次的结果。

fork/join框架的使用的约束条件:
1. 除了fork() 和 join()方法外,线程不得使用其他的同步工具。线程最好也不要sleep()

2. 线程不得进行I/O操作

3. 线程不得抛出checked exception

框架有几个核心类:ForkJoinPool是实现了工作窃取算法的线程池。ForkJoinTask是任务类,他有2个子类:Recurs[......]

Read more

c语言素数环问题实例讲解

c语言素数环问题实例讲解。c语言回溯算法应用。问题描述:将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环。

n=20时,下面的序列就是一个素数环:
1 2 3 4 7 6 5 8 9 10 13 16 15 14 17 20 11 12 19 18
下面的程序利用回溯法穷举所有可能性,试图找到一个解。既然是环,第一个位置可以随意取一个数值(好象设置为1比其它数计算起来都要快,不信你把程序中的 ring[0] 设置为18计算一下。另外n好象只是偶数的时候才存在素数环)。这个问题应该还有很多种解法,和递归、图的 DFS 搜索、哈密顿环都[......]

Read more