﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-大话人生-随笔分类-操作系统</title><link>http://www.cnitblog.com/stomic/category/7229.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 16 Mar 2012 07:48:35 GMT</lastBuildDate><pubDate>Fri, 16 Mar 2012 07:48:35 GMT</pubDate><ttl>60</ttl><item><title> System.InvalidOperationException: Attempt to load Oracle client libraries threw BadImageFormatException.  This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.</title><link>http://www.cnitblog.com/stomic/archive/2012/03/16/78121.html</link><dc:creator>大话人生</dc:creator><author>大话人生</author><pubDate>Fri, 16 Mar 2012 02:22:00 GMT</pubDate><guid>http://www.cnitblog.com/stomic/archive/2012/03/16/78121.html</guid><wfw:comment>http://www.cnitblog.com/stomic/comments/78121.html</wfw:comment><comments>http://www.cnitblog.com/stomic/archive/2012/03/16/78121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/stomic/comments/commentRss/78121.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/stomic/services/trackbacks/78121.html</trackback:ping><description><![CDATA[<strong>环境：</strong><br />1.在window 2008 64 bits + IIS7.5的服务器上部署一个项目<br />2.build了一个release + any CPU模式下的package<br /><strong>问题：</strong><br />当部署完成后，run该项目的流程发现出现如下问题：<br /><div>&nbsp;System.InvalidOperationException: Attempt to load Oracle client  libraries threw BadImageFormatException.&nbsp; This problem will occur when  running in 64 bit mode with the 32 bit Oracle client components  installed.</div><br /><strong>分析：</strong><br /><div><span id="result_box">提示很明显在64 bits的环境下使用了32位的oracle客户端组件。但是我们检查oracle是安装的64bits的服务端程序，并没有安装32的任何组件。<br /><br />检查IIS配置，发现Application Pool被设置成了运行32位模式。那么这样会导致程序使用32位的Oracle客户端运行在这32位的应用程序池。<br /><br />因为IIS启动该应用程序池的工作进程，是一个32位的过程中，当它试图加载CLR，它会加载的32位CLR，因此将在32位模式下加载程序集。这即使您的程序集编译为64位和32位模式。在32位模式下运行您的程序集，然后可以调用Oracle客户端，将在32位模式下运行。</span></div><br /><strong>解决：</strong><br /><div><span style="font-size: 11pt; font-family: 宋体; color: #000000;">我通过设置</span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;; color: #000000;">application pool</span><span style="font-size: 11pt; font-family: 宋体; color: #000000;">的配置</span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;; color: #000000;">Application Pools -&gt; Advanced Settings -&gt; Enable 32-Bit Applications</span><span style="font-size: 11pt; font-family: 宋体; color: #000000;">为</span><span style="font-size: 11pt; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;; color: #000000;">false，此问题就解决了</span></div><img src ="http://www.cnitblog.com/stomic/aggbug/78121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/stomic/" target="_blank">大话人生</a> 2012-03-16 10:22 <a href="http://www.cnitblog.com/stomic/archive/2012/03/16/78121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>https网站,SSL加密的制作方法</title><link>http://www.cnitblog.com/stomic/archive/2011/04/06/73268.html</link><dc:creator>大话人生</dc:creator><author>大话人生</author><pubDate>Wed, 06 Apr 2011 08:08:00 GMT</pubDate><guid>http://www.cnitblog.com/stomic/archive/2011/04/06/73268.html</guid><wfw:comment>http://www.cnitblog.com/stomic/comments/73268.html</wfw:comment><comments>http://www.cnitblog.com/stomic/archive/2011/04/06/73268.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/stomic/comments/commentRss/73268.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/stomic/services/trackbacks/73268.html</trackback:ping><description><![CDATA[IIS配置HTTPS网站的方法 https服务的配置 443服务的配置<br>
<br>
转载过来的文章，比较实用！<br>
<br>
第一步：在IIS 启动SSL<br>
<br>
方法只要3步：<br>
<br>
1. 下载 IIS 6.0 Resource Kit Tools: <a  href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&amp;DisplayLang=en" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&amp;DisplayLang=en</a><br>
<br>
2. 安装.<br>
<br>
3. &#8220;All Programs-&gt;IIS Resources-&gt;SelfSSL-&gt;SelfSSL&#8221;, 在命令行中键入 &#8220;selfssl&#8221;, 回答 &#8220;y&#8221;, and you are done.<br>
<br>
现在你试试在browser里访问：<a  href="https://localhost/" target="_blank">https://localhost</a>，你会发现会出现一个窗口询问是否接受一个untrusted certificate，选Yes, and you are in a safe channel now.<br>
<br>
第二步：<br>
<br>
如何制作一个 https 网站？IIS配置HTTPS服务的方法<br>
<br>
<br>
https 是什么？<br>
<br>
HTTPS（Secure Hypertext Transfer Protocol）安全超文本传输协议 .<br>
<br>
它是由
Netscape开发并内置于其浏览器中，用于对数据进行压缩和解压操作，并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接
字层（SSL）作为HTTP应用层的子层。（HTTPS使用端口443，而不是象HTTP那样使用端口80来和TCP/IP进行通信。）SSL使用40
位关键字作为RC4流加密算法，这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证，如果需要的话用户可以确认发送者是谁。。
<br>
<br>
https是以安全为目标的HTTP通道，简单讲是HTTP的安全版。即HTTP下加入SSL层，https的安全基础是SSL，因此加密的详细内容请看SSL。 <br>
<a name="entrymore"></a><br>
它是一个URI
scheme(抽象标识符体系)，句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP，但HTTPS存在不同
于HTTP的默认端口及一个加密/身份验证层（在HTTP与TCP之间）。这个系统的最初研发由网景公司进行，提供了身份验证与加密通讯方法，现在它被广
泛用于万维网上安全敏感的通讯，例如交易支付方面。 <br>
<br>
限制 <br>
<br>
它的安全保护依赖浏览器的正确实现以及服务器软件、实际加密算法的支持. <br>
<br>
一种常见的误解是&#8220;银行用户在线使用https:就能充分彻底保障他们的银行卡号不被偷窃。&#8221;实际上，与服务器的加密连接中能保护银行卡号的部分，只有用
户到服务器之间的连接及服务器自身。并不能绝对确保服务器自己是安全的，这点甚至已被攻击者利用，常见例子是模仿银行域名的钓鱼攻击。少数罕见攻击在网站
传输客户数据时发生，攻击者尝试窃听数据于传输中。 <br>
<br>
商业网站被人们期望迅速尽早引入新的特殊处理程序到金融网关，仅保留传输码(transaction number)。不过他们常常存储银行卡号在同一个数据库里。那些数据库和服务器少数情况有可能被未授权用户攻击和损害。 <br>
<br>
TLS 1.1之前 <br>
<br>
这段仅针对TLS 1.1之前的状况。因为SSL位于http的下一层，并不能理解更高层协议，通常SSL服务器仅能颁证给特定的IP/端口组合。这是指它经常不能在虚拟主机(基于域名)上与HTTP正常组合成HTTPS。 <br>
<br>
这一点已被更新在即将来临的TLS 1.1中—会完全支持基于域名的虚拟主机。 <br>
<br>
<br>
--------------------------------------------------------------------------------<br>
<br>
<br>
<br>
安装证书服务&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
要想使用SSL安全机制功能，首先必须为Windows&nbsp;&nbsp; Server&nbsp;&nbsp; 2003系统安装证书服务。&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
进入&#8220;控制面板&#8221;，运行&#8220;添加或删除程序&#8221;，接着进入&#8220;Windows组件向导&#8221;对话框，勾选&#8220;证书服务&#8221;选项，点击&#8220;下一步&#8221;按钮，接着选择CA类
型。这里选择&#8220;独立根CA&#8221;，点击&#8220;下一步&#8221;按钮，为自己的CA服务器取个名字，设置证书的有效期限，最后指定证书数据库和证书数据库日志的位置，就可完
成证书服务的安装。&nbsp;&nbsp; <br>
<br>
配置SSL网站&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
1.创建请求证书文件&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
完成了证书服务的安装后，就可以为要使用SSL安全机制的网站创建请求证书文件。点击&#8220;控制面板&#8594;管理工具&#8221;，运行&#8220;Internet&nbsp;&nbsp;
信息服务-IIS&nbsp;&nbsp;
管理器&#8221;，在管理器窗口中展开&#8220;网站&#8221;目录，右键点击要使用SSL的网站，选择&#8220;属性&#8221;选项，在网站属性对话框中切换到&#8220;目录安全性&#8221;标签页（图1），然
后点击&#8220;服务器证书&#8221;按钮。在&#8220;IIS证书向导&#8221;对话框中选择&#8220;新建证书&#8221;，点击&#8220;下一步&#8221;按钮，选择&#8220;现在准备证书请求，但稍后发送&#8221;。在&#8220;名称&#8221;输入
框中为该证书取名，然后在&#8220;位长&#8221;下拉列表中选择密钥的位长。接着设置证书的单位、部门、站点公用名称和地理信息，最后指定请求证书文件的保存位置。这样
就完成了请求证书文件的创建。&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.申请服务器证书&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
完成上述设置后，还要把创建的请求证书文件提交给证书服务器。在服务器端的IE浏览器地址栏中输入&#8220;<a  href="http://localhost/CertSrv/default.asp" target="_blank">http://localhost/CertSrv/default.asp</a>&#8221;。
在&#8220;Microsoft&nbsp;&nbsp;
证书服务&#8221;欢迎窗口中点击&#8220;申请一个证书&#8221;链接，接下来在证书申请类型中点击&#8220;高级证书申请&#8221;链接，然后在高级证书申请窗口中点击&#8220;使用BASE64编码
的CMC或PKCS#10....&#8221;链接，再打开刚刚生成的&#8220;certreq.txt&#8221;文件，将其中的内容复制到&#8220;保存的申请&#8221;输入框后点击&#8220;提交&#8221;按钮
即可。&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
3.颁发服务器证书&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
点击&#8220;控制面板&#8594;管理工具&#8221;，运行&#8220;证书颁发机构&#8221;。在主窗口中展开树状目录，点击&#8220;挂起的申请&#8221;项（图2），找到刚才申请的证书，然后右键点击该
项，选择&#8220;所有任务&#8594;颁发&#8221;。颁发成功后，点击树状目录中的&#8220;颁发的证书&#8221;项，双击刚才颁发的证书，在弹出的&#8220;证书&#8221;对话框的&#8220;详细信息&#8221;标签页中，点击
&#8220;复制到文件&#8221;按钮，弹出证书导出向导，连续点击&#8220;下一步&#8221;按钮，并在&#8220;要导出的文件&#8221;对话框中指定文件名，最后点击&#8220;完成&#8221;。&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
4. 安装服务器证书&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
重新进入IIS管理器的&#8220;目录安全性&#8221;标签页，点击&#8220;服务器证书&#8221;按钮，弹出&#8220;挂起的证书请求&#8221;对话框，选择&#8220;处理挂起的请求并安装证书&#8221;选项，点击
&#8220;下一步&#8221;按钮，指定刚才导出的服务器证书文件的位置，接着设置SSL端口，使用默认的 &#8220;443&#8221;即可，最后点击&#8220;完成&#8221;按钮。&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;<br>
<br>
在&#8220;目录安全性&#8221;标签页，点击安全通信栏的&#8220;编辑&#8221;按钮，勾选&#8220;要求安全通道（SSL）&#8221;选项，最后点击&#8220;确定&#8221;按钮即可启用SSL。 <br>
<br>
<br>
--------------------------------------------------------------------------------<br>
<br>
<br>
为 Web 服务器配置 SSL <br>
<br>
要在 IIS 中启用 SSL，首先必须获得用于加密和解密通过网络传输的信息的证书。IIS 具有自己的证书请求工具，您可以使用此工具向证书颁发机构发送证书请求。此工具简化了获取证书的过程。如果您使用的是 Apache，则必须手动获取证书。 <br>
<br>
在 IIS 和 Apache 中，您都会收到来自证书颁发机构的证书文件，此文件必须配置在计算机上。Apache 使用
SSLCACertificateFile 指令读取其源文件中的证书。而在 IIS
中，您可以使用网站或文件夹属性的目录安全性选项卡来配置和管理证书。 <br>
<br>
您可以将证书从 Apache 迁移到 IIS；但是 Microsoft 建议您重新创建或获取一个新的 IIS 证书。 <br>
<br>
此过程假定您的站点已经具备了证书。<br>
<br>
1. 以管理员身份登录到 Web 服务器计算机。 <br>
<br>
2. 单击开始，指向设置，然后单击控制面板。 <br>
<br>
3. 双击管理工具，然后双击 Internet 服务管理器。 <br>
<br>
4. 从左窗格中的不同服务站点的列表中选择网站。 <br>
<br>
5. 右键单击希望为其配置 SSL 通信的网站、文件夹或文件，然后单击属性。 <br>
<br>
6. 单击目录安全性选项卡。 <br>
<br>
7. 单击编辑。 <br>
<br>
8. 如果希望网站、文件夹或文件要求 SSL 通信，请单击需要安全通道 (SSL)。 <br>
<br>
9. 单击需要 128 位加密以配置 128 位（而不是 40 位）加密支持。 <br>
<br>
10. 要允许用户不必提供证书就可以连接，请单击忽略客户证书。 <br>
<br>
或者，如果要让用户提供证书，请使用接受客户证书。 <br>
<br>
11. 要配置客户端映射，请单击启用客户证书映射，然后单击编辑将客户证书映射到用户。 <br>
<br>
如果配置了此功能，可以将客户证书分别映射到 Active Directory
中的每个用户。可以使用此功能以根据用户访问网站时提供的证书自动识别用户。可以将用户一对一映射到证书（一个证书标识一个用户），或者将许多证书映射到
一个用户（根据特定的规则，对照证书列表来匹配特定的用户。第一个有效的匹配项成为映射。） <br>
<br>
12. 单击确定。<img src ="http://www.cnitblog.com/stomic/aggbug/73268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/stomic/" target="_blank">大话人生</a> 2011-04-06 16:08 <a href="http://www.cnitblog.com/stomic/archive/2011/04/06/73268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows 2003 远程桌面超时 自动断开 自动注销</title><link>http://www.cnitblog.com/stomic/archive/2011/03/16/73107.html</link><dc:creator>大话人生</dc:creator><author>大话人生</author><pubDate>Wed, 16 Mar 2011 02:59:00 GMT</pubDate><guid>http://www.cnitblog.com/stomic/archive/2011/03/16/73107.html</guid><wfw:comment>http://www.cnitblog.com/stomic/comments/73107.html</wfw:comment><comments>http://www.cnitblog.com/stomic/archive/2011/03/16/73107.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/stomic/comments/commentRss/73107.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/stomic/services/trackbacks/73107.html</trackback:ping><description><![CDATA[Windows 2003 远程桌面超时 自动断开 自动注销<br>
<br>
<font face="宋体 ">【 组策略 】开始--&gt;运行--&gt;gpedit.msc 计算机配置-&gt;管理模板-&gt;Windows组件-&gt;终端服务-&gt;会话</font><br>
<font face="宋体 ">为断开的会话设置时间限制 已启用<br>
到达时间限制时终止会话 已启用</font><br>
<font face="宋体 ">为活动终端服务会话设置时间限制 未被配置<br>
为活动但空闲的终端服务会话设置时间限制 未被配置<br>
允许仅从原始客户端重新连接 未被配置</font><br>
<br>
<font face="宋体 ">【 终端服务配置 】开始--&gt;运行--&gt;tscc.msc 连接--&gt;RDP-Tcp右键属性--&gt;会话</font><br>
<font face="宋体 ">把这里面的替代用户设置的设置都改为从不，并且把从不勾选。</font><br>
<br>
<font face="宋体 ">【 本地安全策略 】开始--&gt;运行--&gt;secpol.msc 本地安全策略--&gt;本地策略--&gt;安全选项：</font><br>
<font face="宋体 ">Microsoft 网络服务器: 当登录时间用完时自动注销用户 已启用<br>
Microsoft 网络服务器: 在挂起会话之前所需的空闲时间 0</font><br>
<br>
<font face="宋体 ">Microsoft 网络客户端: 数字签名的通信(若服务器同意) 已启用<br>
Microsoft 网络服务器: 数字签名的通信(若客户端同意) 已禁用<br>
Microsoft 网络服务器: 数字签名的通信(总是) 已禁用<br>
Microsoft 网络客户端: 数字签名的通信(总是) 已禁用<br>
Microsoft 网络客户端: 发送未加密的密码到第三方 SMB 服务器 已禁用</font><img src ="http://www.cnitblog.com/stomic/aggbug/73107.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/stomic/" target="_blank">大话人生</a> 2011-03-16 10:59 <a href="http://www.cnitblog.com/stomic/archive/2011/03/16/73107.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>线程与进程的区别</title><link>http://www.cnitblog.com/stomic/archive/2008/05/10/43570.html</link><dc:creator>大话人生</dc:creator><author>大话人生</author><pubDate>Sat, 10 May 2008 03:04:00 GMT</pubDate><guid>http://www.cnitblog.com/stomic/archive/2008/05/10/43570.html</guid><wfw:comment>http://www.cnitblog.com/stomic/comments/43570.html</wfw:comment><comments>http://www.cnitblog.com/stomic/archive/2008/05/10/43570.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/stomic/comments/commentRss/43570.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/stomic/services/trackbacks/43570.html</trackback:ping><description><![CDATA[<p>多线程共存于应用程序中是现代操作系统中的基本特征和重要标志。用过UNIX操作系统的读者知道进程，在UNIX操作系统中，每个应用程序的执行都在操作系统内核中登记一个进程标志，操作系统根据分配的标志对应用程序的执行进行调度和系统资源分配，但进程和线程有什么区别呢？</p>
<p>进程和线程都是由操作系统所体会的程序运行的基本单元，系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于：</p>
<p>线程的划分尺度小于进程，使得多线程程序的并发性搞。</p>
<p>另外，进程在执行过程中拥有独立的内存单元，而多个线程共享内存，从而极大地提高了程序的运行效率。</p>
<p>线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行，必须依存在应用程序中，由应用程序提供多个线程执行控制。</p>
<p>从逻辑角度来看，多线程的意义在于一个应用程序中，有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用，来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。<br><br>进程（Process）是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例，进程是Unix操作系统环境中的基本成分、是系统资源分配的基本单位。Unix操作系统中完成的几乎所有用户管理和资源分配等工作都是通过操作系统对应用程序进程的控制来实现的。 <br><br>C、C++、Java等语言编写的源程序经相应的编译器编译成可执行文件后，提交给计算机处理器运行。这时，处在可执行状态中的应用程序称为进程。从用户角度来看，进程是应用程序的一个执行过程。从操作系统核心角度来看，进程代表的是操作系统分配的内存、CPU时间片等资源的基本单位，是为正在运行的程序提供的运行环境。进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中，而进程则是处于动态条件下由操作系统维护的系统资源管理实体。多任务环境下应用程序进程的主要特点包括： <br><br>●进程在执行过程中有内存单元的初始入口点，并且进程存活过程中始终拥有独立的内存地址空间； <br><br>●进程的生存期状态包括创建、就绪、运行、阻塞和死亡等类型； <br><br>●从应用程序进程在执行过程中向CPU发出的运行指令形式不同，可以将进程的状态分为用户态和核心态。处于用户态下的进程执行的是应用程序指令、处于核心态下的应用程序进程执行的是操作系统指令。 <br><br>在Unix操作系统启动过程中，系统自动创建swapper、init等系统进程，用于管理内存资源以及对用户进程进行调度等。在Unix环境下无论是由操作系统创建的进程还要由应用程序执行创建的进程，均拥有唯一的进程标识（PID）。 <br><br></p>
<center><font color=#000099><strong>进程与Java线程的区别</strong></font></center>
<p><br><br>应用程序在执行过程中存在一个内存空间的初始入口点地址、一个程序执行过程中的代码执行序列以及用于标识进程结束的内存出口点地址，在进程执行过程中的每一时间点均有唯一的处理器指令与内存单元地址相对应。 <br><br>Java语言中定义的线程（Thread）同样包括一个内存入口点地址、一个出口点地址以及能够顺序执行的代码序列。但是进程与线程的重要区别在于线程不能够单独执行，它必须运行在处于活动状态的应用程序进程中，因此可以定义线程是程序内部的具有并发性的顺序代码流。 <br><br>Unix操作系统和Microsoft Windows操作系统支持多用户、多进程的并发执行，而Java语言支持应用程序进程内部的多个执行线程的并发执行。多线程的意义在于一个应用程序的多个逻辑单元可以并发地执行。但是多线程并不意味着多个用户进程在执行，操作系统也不把每个线程作为独立的进程来分配独立的系统资源。进程可以创建其子进程，子进程与父进程拥有不同的可执行代码和数据内存空间。而在用于代表应用程序的进程中多个线程共享数据内存空间，但保持每个线程拥有独立的执行堆栈和程序执行上下文（Context）。 <br><br>基于上述区别，线程也可以称为轻型进程 (Light Weight Process，LWP)。不同线程间允许任务协作和数据交换，使得在计算机系统资源消耗等方面非常廉价。 <br><br>线程需要操作系统的支持，不是所有类型的计算机都支持多线程应用程序。Java程序设计语言将线程支持与语言运行环境结合在一起，提供了多任务并发执行的能力。这就好比一个人在处理家务的过程中，将衣服放到洗衣机中自动洗涤后将大米放在电饭锅里，然后开始做菜。等菜做好了，饭熟了同时衣服也洗好了。 <br><br>需要注意的是：在应用程序中使用多线程不会增加 CPU 的数据处理能力。只有在多CPU 的计算机或者在网络计算体系结构下，将Java程序划分为多个并发执行线程后，同时启动多个线程运行，使不同的线程运行在基于不同处理器的Java虚拟机中，才能提高应用程序的执行效率</p>
<img src ="http://www.cnitblog.com/stomic/aggbug/43570.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/stomic/" target="_blank">大话人生</a> 2008-05-10 11:04 <a href="http://www.cnitblog.com/stomic/archive/2008/05/10/43570.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>