文章列表
 
您正在查看 "Thread" 分类下的文章

2009年08月09日 星期日 0:56

针对具有类似过滤功能的数据处理,如果数据量很大,采用单线程来筛选数据,速度可想而知会非常慢,那么肯定想到采用多线程编程,并发执行,能够解决这个问题。但是,在设计多线程筛选系统的时候,对于不同的筛选条件,可能想到对条件进行分类,然后构造一个具有区分度的筛选类实例,从而启动该筛选类实例线程。

如果需要筛选的数据集合,假设就是字符串的集合,集合容量10000000~50000000,也就是说具有10000000~50000000个字符串需要与分类的条件进行比较,删除不满足条件的字符串,保留合适的字符串。

对于这个

 
2009年03月31日 星期二 2:04

(一) 理解Linux下进程的结构

   Linux下一个进程在内存里有三部份的数据,就是“数据段”,“堆栈段”和“代码段”,其实学过汇编语言的人一定知道,一般的CPU象I386,都有上述三种段寄存器,以方便操作系统的运行。“代码段”,顾名思义,就是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段。

   堆栈段存放的就是子程序的返回地址、子程序的参数以及程序的局部变量。而数据段则存放程序的全局

 
2009年01月03日 星期六 19:51

生产者-消费者问题

生产者-消费者问题,需要对生产者线程和消费者线程进行同步。这里以一个缓冲区作为生产者和消费者之间的共享资源。

这里产品使用整数来模拟,假设生产者生产数字,消费者消费数字,缓冲区里面存放的就是生产者生产的数字了。

缓冲区类Buffer的实现如下所示:

package org.shirdrn.thread.procon;

class Buffer { //定义缓冲区类,存放数据

    int value;
    boolean bFull=false; //定义boolean型变量,用于互斥操作缓

 
2009年01月01日 星期四 14:21

线程同步

线程同步的意义在于,进程内的多个线程共同访问共享资源,由于各个线程分配的间片很短,造成对共享资源的访问冲突,可能会因此导致共享资源不能按照预想的方式在系统中存在,造成系统错误。

线程同步的两种主要方式:同步块和同步方法。

同步块

同步块就是对访问共享变量的代码段加载,通过对临界区加锁实现互斥访问。

前面那个售票的例子,没有对多个线程进行同步,它们会共同访问tickets共享变量,可能因为分配的时间片的长短不同,给系统带来灾难性的损失。

 
2009年01月01日 星期四 12:52

在学习线程同步之前,先对与线程相关的一些概念有个深入了解。

进程

在学操作系统课程的时候都接触过进程的定义:

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

也就是说,“进程是程序的执行”。

通过这句话,我们可以理解到,程序是相关代码的集合具有静态的特性,它描述了程序能够实现哪些功能;如果想让程序实现其代码所定义的功能,那么就应该从静态向动态转变,也就是执行程序,程序执行

 
2008年12月31日 星期三 22:00

通常,如果我们并不需要修改线程类当中除了run方法以外其它方法的行为,最好去实现Runnable接口。

实现Runnable接口有两个好处:

一个是:如果我们定义的类(MyThread)已经继承了一个类,因为java中支持单继承,所以我们定义的类(MyThread)无法再去继承其它的类。所以可以采用实现接口的方式。

另一个是:实现Runnable接口,如果多线程同时访问同一种资源,这时会很方便。比如:

package org.shirdrn.thread.course2;

public class MultiThread {
    public static void

 
2008年12月31日 星期三 21:07

在Java语言中,创建一个线程类,可以继承Thread类。另外,因为Thread实现了Runnable接口,同时实现了Runnable接口中定义的run方法。可以了解一下:

Runnable接口的定义:

package java.lang;
public interface Runnable {

    public abstract void run();
}

Thread类实现了Runnable接口中定义的run方法:

    public void run() {
if (target != null) {
     target.run();
}
    }

 
 
   
 
 
文章存档
 
     
 
最新文章评论
  

这个不错,很详细,对于我们初学spring框架的人不错的帮助,感谢楼主分享
 

最近用,学习了~
 

[表情]
 

[表情]
 

对于Ubuntu用户,有一个简单的办法: 将该用户添加到admin用户组,即 usermod -G adm
   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu