当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 线程是Java的一大特性,它可以是给定的指令序列、给定的方法中定义的变量或者一些共享数据(类一级的变量)。
 

 

    摘要:在本文中,我们将简单观察一下多线程应用程序开发中公共线程用法,同时,解释一下生产者-消费者编程方案,并研究一个实际的示例来向您演示 consumer 类是如何工作的。多线程基础知识多线程是一种使应用程序能同时处理多个操作的编程技术。通常有两种不同类型的多线程操作使用多个线程:适时事件,当作业必须在特定的时间或在特定的间隔内调度执行时后台处理,当后台事件必须与当前执行流并行处理或执行时适时事件的示例......
 ·线程池与工作队列    »显示摘要«
    摘要:为什么要用线程池? 诸如 web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 http、ftp 或 pop)、通过 jms 队列或者可能通过轮询数据库。不管请求如何到达,服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。构建服务器应用程序的......


创建Java中的线程池

线程是java的一大特性,它可以是给定的指令序列.给定的方法中定义的变量或者一些共享数据(类一级的变量).在java中每个线程有自己的堆栈与程序计数器(pc),其中堆栈是用来跟踪线程的上下文(上下文是当线程执行到某处时,当前的局部变量的值),而程序计数器则用来跟踪当前线程正在执行的指令.

【程序编程相关:调查:71%宽带用户将网络视为获取新闻来

【推荐阅读:电力电缆布线时热伸缩及其对策探讨

在通常情况下,一个线程不能访问另外一个线程的堆栈变量,而且这个线程必须处于如下状态之一: 【扩展信息:朗讯阿尔卡特将合并 分析师点评朗讯包袱多

1.排队状态(ready),在用户创建了一个线程以后,这个线程不会立即运行.当线程中的方法start()被调用时,这个线程就会进行排队状态,等待调度程序将它转入运行状态(running).当一个进程被执行后它也可以进行排队状态.如果调度程序允许的话,通过调用方法yield()就可以将进程放入排队状态.

2.运行状态(running),当调度程序将cpu的运行时间分配给一个线程,这个线程就进入了运行状态开始运行.

3.等待状态(waiting),很多原因都可以导致线程处于等待状态,例如线程执行过程中被暂停,或者是等待i/o请求的完成而进入等待状态.

在java中不同的线程具有不同的优先级,高优先级的线程可以安排在低优先级线程之前完成.如果多个线程具有相同的优先级,java会在不同的线程之间切换运行.一个应用程序可以通过使用线程中的方法setpriority()来设置线程的优先级,使用方法getpriority()来获得一个线程的优先级.

线程的生命周期

一个线程的的生命周期可以分成两阶段:生存(alive)周期与死亡(dead)周期,其中生存周期又包括运行状态(running)与等待状态(waiting).当创建一个新线程后,这个线程就进入了排队状态(ready),当线程中的方法start()被调用时,线程就进入生存周期,这时它的方法isalive()始终返回真值,直至线程进入死亡状态.

线程的实现

有两种方法可以实现线程,一种是扩展java.lang.thread类,另一种是通过java.lang.runnable接口.

thread类封装了线程的行为.要创建一个线程,必须创建一个从thread类扩展出的新类.由于在thread类中方法run()没有提供任何的操作,因此,在创建线程时用户必须覆盖方法run()来完成有用的工作.当线程中的方法start()被调用时,方法run()再被调用.下面的代码就是通过扩展thread类来实现线程:

import java.awt.*;


...   下一页
 ·线程与swing    »显示摘要«
    摘要:本文包括以下内容:单线程规则:swing线程在同一时刻仅能被一个线程所访问。一般来说,这个线程是事件派发线程(event-dispatching thread)。规则的例外:有些操作保证是线程安全的。事件分发:如果你需要从事件处理(event-handling)或绘制代码以外的地方访问ui,那么你可以使用swingutilities类的invokelater()或invokeandwait()方法......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE