多线程技术 为何Volatile 声明的不对!!

问题描述

多线程技术为何Volatile声明的不对!!刚学这个,代码是书上的,运行有错误!volatile关键字该如何声明呢????代码如下usingSystem;usingSystem.Windows.Forms;usingSystem.Threading;namespace多线程技术{privatevolatileboolthreadStopped;publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){Threadt=newThread(MyThread);//创建线程实例t.IsBackground=true;//设置赋值线程为后台线程t.Name="MyThread";//辅助线程名称threadStopped=false;t.Start();Thread.Sleep(100);MessageBox.Show("主线程输出!");threadStopped=true;//终止辅助线程}//MyThread方法由一个辅助线程执行privatevoidMyThread(){MessageBox.Show("辅助线程开始!");while(!threadStopped){//这里添加辅助线程要执行的任务Thread.Sleep(10);}MessageBox.Show("辅助线程结束!");//MyThread方法返回后,辅助线程将终止}}}

解决方案

时间: 2024-08-01 14:33:06

多线程技术 为何Volatile 声明的不对!!的相关文章

VC中利用多线程技术实现线程之间的通信

文章来源:[url]http://www.programfan.com/article/showarticle.asp?id=2951[/url] 当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力.用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义.现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可想象的.

并行编程之多线程共享非volatile变量,会不会可能导致线程while死循环

背景 大家都知道线程之间共享变量要用volatile关键字.但是,如果不用volatile来标识,会不会导致线程死循环?比如下面的伪代码: static int flag = -1; void thread1(){ while(flag > 0){ //wait or do something } } void thread2(){ //do something flag = -1; } 线程1,线程2同时运行,线程2退出之后,线程1会不会有可能因为缓存等原因,一直死循环? 真实的世界 第一个坑

使用.NET多线程技术显示实时股票信息

多线程|显示 本文的内容是学习如何使用多线程技术建立应用程序,使应用程序在执行时间和资源密集型后台事务的时候,用户界面(UI)仍然保持活动状态. 多线程技术(multithreading)是编程中最强大的概念之一.使用多线程技术,你可以把复杂的事务拆分到彼此独立执行的多个线程之中.良好的多线程应用程序是自然地同步的,类似于Web服务调用.在默认情况下,Web服务调用属于阻塞(blocking)调用--即调用者(caller)的代码停止执行,直到Web服务返回结果为止.但是由于Web服务调用通常很

运用多线程技术实现文件的快速搜索

从一名初学者到如今一名熟练的VC程序员,得益于VC知识库的帮助,一直想着该如何回报.现撰此文,一来略表心意,二来和VC爱好者交流. 操作系统一般都提供了文件搜索的功能,但采用的是顺序搜索,搜索效率很底.而且按此法编程十分烦琐,在目录层次很多时,往往不好处理.本文采用多线程技术实现文件的快速搜索,代码量很少,执行效率极高. 其基本思想其实很简单,就是找到一个目录就开辟一个线程,文件的话当然在线程内就处理了.这样实现了同步搜索,速度当然快起来了. 本文程序运行效果图 以下介绍VC具体实现: 一. 搜

多线程技术在Delphi数据库编程中的应用

引言 在传统上,并发多任务的实现采用的是在操作系统级运行多个进程,由操作系统按照一定的策略(优先级.循环等),调度各个进程的执行,以最大限度的利用计算机的各种资源.在这种实现方法中最基本的调度单位是操作系统级上的进程.由于各个进程拥有自己独立的运行环境(寄存器和地址空间等).进程与进程之间的耦合关系差,并发性粒度过于粗糙,并发实现也不太容易.所以,除非特殊需要,一般的应用设计都不采用这种技术. 为了克服这些问题,近年来逐步发展了并发多线程的程序设计技术.从并发Ada.并发C等各种并发多任务的程序

ARM计划增加多线程技术以提高处理器性能

ARM计划为处理器增加多线程技术,以提高处理器性能. ARMhttp://www.aliyun.com/zixun/aggregation/17728.html">架构处理器被广泛应用在智能手机中,ARM计划涉足新领域,例如服务器.网络和通信.ARM本月公布的Cortex-A15处理器内核不支持多线程技术.多线程技术可以在一个处理器内核上运行多个线程,提高应用运行的性能.英特尔的笔记本和台式机处理器,以及IBM和Sun的处理器都支持多线程技术. 市场研究公司J. Gold Associat

iOS多线程技术

iOS多线程技术主要分配NSThread.NSOperation和GCD.下边来简单的介绍一下吧. 随性一点,就不按照顺序来了.所以先介绍一下NSOperation. ------------------------------------------------------------------------------NSOperation-----------------------------------------------------------------------------

java多线程中的volatile和synchronized用法分析_java

本文实例分析了java多线程中的volatile和synchronized用法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package com.chzhao; public class Volatiletest extends Thread {     private static int count = 0;     public void run() {         count++;     }     public static void main(String

java多线程技术在当前应用中所发挥的作用

问题描述 大家好,请教一个问题?关于java多线程技术在当前应用上发挥的作用大吗?他的当前使用状况怎么样呢?发展前景怎样呢? 解决方案 解决方案二:做web开发,基本上不需要自己写多线程,基本上是容器实现,网络编程/游戏开发,用的应该比较多了,比如想在手机上写一个像样的基于J2ME的游戏,不用多线程怎么做?解决方案三:请问:有没很好的博客地址让我赏读下呢?关于java多线程技术当前的应用(有成功的案例才好)以及今后的发展情况!楼上,谢喽解决方案四:你要了解javaEE的servlet机制就是建立