using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace demo5{ ...
分类:
Web程序 时间:
2015-05-08 12:41:51
阅读次数:
155
模拟ThreadLocal类实现:线程范围内的共享变量,每个线程只能访问他自己的,不能访问别的线程。package com.ljq.test.thread;import java.util.HashMap;import java.util.Map;import java.util.Random;/*...
分类:
编程语言 时间:
2015-05-07 14:26:16
阅读次数:
221
1.1 综述 ????创建线程有两种方式:extends Thread || inplements Runable,但是这两种方式都有一个缺陷,就是执行完任务后不能获取执行结果。 ????如果非要获取到执行结果的话,就必须通过共享变量或者是...
分类:
编程语言 时间:
2015-05-05 12:51:42
阅读次数:
164
面向对象和面向过程的区别面向过程(ProcessOriented)这个词是在面向对象(ObjectOriented)出现之后为与之相对而提出的。其实它在以前基本被叫做“结构化编程”。早期的程序设计,大量使用共享变量(全局变量)和GOTO语句一类的东西,后来有人证明所有有意义的程序流程都可以使用三.....
分类:
其他好文 时间:
2015-04-28 18:03:48
阅读次数:
129
#include
#include
#include
#include // 包含线程库
#include
void *thread_function(void *arg);...
分类:
编程语言 时间:
2015-04-27 21:52:39
阅读次数:
124
线程范围内的共享变量,通俗的说就是指:特定的线程对应特定的数据,不会因为对象的变化数据而改变。
ThreadLocal 的使用方便我们对不同的线程管理不同的数据,而且能够很好的对单例进行复用,因为我们通常不同的数据对象对应不同的单例进行保存,如果一旦分类数据过多,那么我们得创建大量的单例进行保存。然而ThreaLocal能够做到单例的复用。下面请看代码public class ThreadSco...
分类:
编程语言 时间:
2015-04-26 15:17:29
阅读次数:
141
Dekker algorithm是一种著名的并发编程的算法,Dekker算法的核心部分是一组对称的代码来访问一组共享变量,使得两个线程不可能同时进入临界区(只要cpu内存模型是遵循顺序一致性的),从而达到线程同步的目的。以下是该算法的一种实现:static volatile int flag1 = ...
分类:
编程语言 时间:
2015-04-25 00:06:40
阅读次数:
234
可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到。Java内存模型(JMM)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存中和从内存中读取出变量这样的底层细节。多线程中所有的变量都存储在主内存中,每个线程都有自己的独立的工作内存,里面保存该线程使用的变量的副本(主内存中该变量的拷贝)。两种方式实现多线程的可见性synchronized实现可见性sy...
分类:
编程语言 时间:
2015-04-22 11:38:47
阅读次数:
135
1. 可见性如果一个线程对共享变量值的修改,能够及时的被其他线程看到,叫做共享变量的可见性。如果一个变量同时在多个线程的工作内存中存在副本,那么这个变量就叫共享变量2. JMM(java内存模型)多个线程同时对主内存的一个共享变量进行读取和修改时,首先会读取这个变量到自己的工作线程成为一个副本中,改...
分类:
编程语言 时间:
2015-04-11 23:49:29
阅读次数:
243
共享变量可见性实现的原理 java 语言层面支持的可见性实现方式: synchronized volatile1、 synchronized 的两条规定: 1 线程解锁前,必须把共享变量的最新值刷新到主内存中。 2 线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需...
分类:
编程语言 时间:
2015-04-09 00:43:28
阅读次数:
153