怎么写多线程

1. 按键精灵多线程怎么写

多线程写法也很简单,而且容易看懂,修改参数比较简单

BeginThread A

Delay 10

BeginThread B

Delay 10

BeginThread C

Sub A()

While true

KeyPress "A", 1

For 10

Delay 1000

Next

Wend

End Sub

Sub B()

While true

KeyPress "B", 1

For 3

Delay 1000

Next

Wend

End Sub

Sub C()

While true

KeyPress "C", 1

For 7

Delay 1000

Next

Wend

End Sub

2. 按键精灵多线程怎么写

按键精灵是没多线程的,只有一个伪多线程。

推荐楼主使用TC简单开发软件,TC的多线程,才是程序里面真正的多线程。 开启多线程的优点和缺点 提高界面程序响应速度。

通过使用线程,可以将需要大量时间完成的流程在后台启动单独的线程完成,提高前台界面的相应速度。 充分利用系统资源,提高效率。

通过在一个程序内部同时执行多个流程,可以充分利用CPU等系统资源,从而最大限度的发挥硬件的性能。 当程序中的线程数量比较多时,系统将花费大量的时间进行线程的切换,这反而会降低程序的执行效率。

但是,相对于优势来说,劣势还是很有限的,所以现在的项目开发中,多线程编程技术得到了广泛的应用。

3. 在java中怎样写个多线程并发

多线程有两种形式,一种是直接让当前类继承 Thread 重写run方法来实现,另一种是使用 Runnable接口。推荐第二种方法。

例:

public class Counter {

public volatile static int count = 0;

public static void inc() {

//这里延迟1秒,使得结果明显

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

}

count++;

}

public static void main(String[] args) {

//同时启动1000个线程,去进行i++计算,看看实际结果

for (int i = 0; i

4. 求教一种正确的多线程写法

其实你的这个需求很容易达到.我先说一下我的废话吧..第二张数据库表OutDoor(字段:ID、name、CardId、time1,time2),此表记录固定(写死的)把他缓存到ASP.NET中然后监视AccessDoor表.或者在ADD方法中.添加代码当ADD时,拿出缓存,判断是否存在.打上标签..这样写.没有任何服务器压力SQL压力.实现你的内容..下面会给你解释些为什么要按照我这么做..下面都是按照你来的那种了哦~!线程,ASP.NET?我好奇你如果是IIS作为宿主,你是在APPLACTION级别写的代码么?我帮你解答,但并不推荐哦,因为IIS的线程池是有限的,具体详见,进程与线程的关系,如果想了解可以提问.先帮你回答你的问题吧如果你不知道把这些代码放在哪里,,那您就先应该温习线程在ASP.NET中如何使用以及C#的线程在ASP.NET中的使用注意事项。

我的下方所示代码均写在全局配置文件中哦.当然也可以写在C#的普通类文件,但是那时候我怕你控制不住线程.ASP.NET开线程的话给你提供三种备选方式1.thread t=new thread(yourMethon)T.START()YourMethon的外层结构为While()或DO WHILE()大概为While(true){//这里写你的代码..//OK.你要查询数据库,暂且叫他做CommentToDataBaseFunction//我就CommentToDataBaseFunction();//调用查询数据库Thread.CurrentTheard.Sleep(1000);.//防止在IIS串线程以及更好的控制线程,这么写是最推荐的我这里是手写了.不对的话你自己修改一下}2.使用ASP.NET中的Timer道理与上面一样,但是使用过程中特别注意别同时引用了两种Timer 我记不大清楚了,一个实在THREAD.TIMER,另外一个好象是WINFORMS的还有ASP,NET的都有一种是控件类型,一种是线程的基本版.如果是控件的话那么代码是Timer myTimer=new timer();哎呀..我承认这控件的构造函数忘掉了。哈哈Mytimer.时间=1000;//。

我丢人了..哈哈好吧.我非圣贤嘛。MytIMER.TICKER+=CommentToDataBaseFunction()3.既然是ASP.NET那肯定少不了WEB前台式的查询在web前台方式查询数据库那么分为两种起始道理一样,使用JS或JQ发送AJAX查询即可这两种的你去百度一下具体代码。

如果不知道你在问吧..下来是你的查询数据库代码CommentToDataBaseFunction该方法就简单了..发一条SQL即可..其实在我看来你的问题完全是模糊不清楚的该线程"每秒"扫描数据库表AccessDoor(字段:ID、name、CardId、time1,time2)(表数据已插入)并时刻返回数据记录、整个表么?如果是。你这玩意效率真心低了..OK..不扯淡..给你说具体..另外:表AccessDoor的查询记录与第二张数据库表OutDoor(字段:ID、name、CardId、time1,time2),此表记录固定(写死的)。

数据匹配,有相同项则返回1,否则返回0。按照你的PS内容,.你是想让我给你写SQL吧..OK。

SQL张这样哈..我仍旧伪代码了.Select *,(select case when exists(select*from OutDoor where 挨个写。. 字段)a then 1 else 0 end ) from AccessDoor好吧这样应该是可以滴..我网吧坐着呢..要是不行.你把提示给我.容我再燃烧燃烧大脑。

然后1存在0不存在多出来一个未命名字段..要命名的话你就AS一下就好了友情提示啊..IIS的线程归IIS进程所管,如果你长时间狂刷IIS的线程,你这么开开关关的..要是写在APPLACTION级别我倒还能接受那么一点点,如果你写在ASHX或者C#代码中,,如果你是我属下..我1000%抽你..因为除过APPLACTION级别以外..ASHX与C#均是以客户端的个数为单位的.大部分不懂.NET框架的人都说什么CLR.什么的.其实线程在真正的回收仍需要时间,,当然根据你硬件来讲..如果以客户端为单位假设开关100线程中实际存在的线程为101.那么1000个在线客户就可以达到10W线程.10W。这线程还不直属于WINDOWS还奴属于IIS进程。

.所以..你看着弄吧..如果是APPLACTION的话我倒也不反对,但是你的这个网站这一块就会造成实际的SQL连接池压力(前提是你不查询整个表如果查询整个表..你连接池占不满.你内存会占满)如果让我给你些建议的话..把代码写在APPLACTION级别,也就是那个什么GOLBX什么什么玩意的那么..写在APPLACTIONSTART的那个事件中,,然后写一个APPLACTION变量,将当前最新的ID查询出来,存进去.上面的SQL加一个WHERE 条件..ID>XXXX这样效率会高点.再高的话..你做缓存..或者在ADD时编写代码。

5. C# 如何写多线程程序

我用的是VS2005,

线程的实现可以用种方法..目前我知道的.一种是安全调用,一种是不安全调用

先说不安全调用

先加入命名空间 using System.Threading;

然后在要用新线程运行的方法中加入

Thread a=new Thread(new ThreadStart(sayhi());

然后用a.start();开始新的线程,执行的代码放到

private void sayhi()

{

Messagebox.Show("Hello New Threading");

}

这样运行的话,就算关了主界面,这个对话框也不会消失

如果想在这个新进程中改变主程序中的界面,则需要在改变前加入一句话

System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;

这样就可以在新的进程中操作主窗体的控件,比如label1.Text="Hello";

另一种方法是安全调用,不过VS2005中提供的BackgroundWorker,可以很方便的进行调用线程,同样,想通过新进程访问主程序的话 也是需要加入

System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;

BackgroundWorker控件很方便,

托一个到设计界面里,双击这个控件,然后会生成一个private void backgroundWorker1_DoWork(object sender,EventArgs e)事件

把新线程要做的工作写在下边的代码里

然后通过this.backgroundWorker1.RunWorkerAsync();调用DOWORK的代码

而且还可以用private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)可以做的收尾工作.

在BackgroundWorker的方法列表中有

6. c语言如何编写一个简单的多线程程序

这是一个多线程例子,里面只有两个线程,是生产者/消费者模式,已编译通过,注释很详细,如下:/* 以生产者和消费者模型问题来阐述Linux线程的控制和通信你 生产者线程将生产的产品送入缓冲区,消费者线程则从中取出产品。

缓冲区有N个,是一个环形的缓冲池。 */#include #include #define BUFFER_SIZE 16 struct prodcons { int buffer[BUFFER_SIZE];/*实际存放数据的数组*/ pthread_mutex_t lock;/*互斥体lock,用于对缓冲区的互斥操作*/ int readpos,writepos; /*读写指针*/ pthread_cond_t notempty;/*缓冲区非空的条件变量*/ pthread_cond_t notfull;/*缓冲区未满 的条件变量*/ };/*初始化缓冲区*/ void pthread_init( struct prodcons *p) { pthread_mutex_init(&p->lock,NULL); pthread_cond_init(&p->notempty,NULL); pthread_cond_init(&p->notfull,NULL); p->readpos = 0; p->writepos = 0; }/*将产品放入缓冲区,这里是存入一个整数*/ void put(struct prodcons *p,int data) { pthread_mutex_lock(&p->lock); /*等待缓冲区未满*/ if((p->writepos +1)%BUFFER_SIZE ==p->readpos) { pthread_cond_wait(&p->notfull,&p->lock); } p->buffer[p->writepos] =data; p->writepos++; if(p->writepos >= BUFFER_SIZE) p->writepos = 0; pthread_cond_signal(&p->notempty); pthread_mutex_unlock(&p->lock); }/*从缓冲区取出整数*/ int get(struct prodcons *p) { int data; pthread_mutex_lock(&p->lock); /*等待缓冲区非空*/ if(p->writepos == p->readpos) { pthread_cond_wait(&p->notempty ,&p->lock);//非空就设置条件变量notempty } /*读书据,移动读指针*/ data = p->buffer[p->readpos]; p->readpos++; if(p->readpos == BUFFER_SIZE) p->readpos = 0; /*设置缓冲区未满的条件变量*/ pthread_cond_signal(&p->notfull); pthread_mutex_unlock(&p->lock); return data; } /*测试:生产站线程将1 到1000的整数送入缓冲区,消费者线程从缓冲区中获取整数,两者都打印信息*/#define OVER (-1) struct prodcons buffer; void *producer(void *data) { int n; for( n=0;n { printf("%d ------>\n",n); put(&buffer,n); } put(&buffer,OVER); return NULL; } void *consumer(void *data) { int d; while(1) { d = get(&buffer); if(d == OVER) break; else printf("----->%d\n",d); } return NULL; } int main() { pthread_t th_p,th_c; void *retval; pthread_init(&buffer); pthread_create(&th_p,NULL,producer,0); pthread_create(&th_c,NULL,consumer,0); /*等待两个线程结束*/ pthread_join(th_p, &retval); pthread_join(th_c,&retval); return 0; }。

7. 如何学会多线程工作

转载这是一个很有意思的问题,我准备先介绍一下心理学上对这个问题的看法,然后从自己的思考和经验出发谈一谈应对之道。

的确,从认知心理学的观点来看,严格来讲人的「多线程工作」是不可能的。因为在任一个瞬间,人只能有一个「注意焦点」,这个注意焦点牵引了人的认知加工资源。

但有时你会误以为同时关注了两个东西,其实是发生了注意转移的结果,即焦点从一个对象转移到另一个对象上,实际上还是一个串行而非并行的过程。当然有一种例外是,有些很熟练的技能,可以「自动化」地、不加注意地进行,那么就可以和其他事情同时做。

比如你骑自行车,你的女朋友坐在后面笑,这时你的注意焦点保持在你女友身上,你和她聊天的同时,你的腿也在一刻不停地蹬,你不需要停下来是因为骑车不需要你的注意和认知资源。但如果此时突然前面蹿出一只喵星人,你可能立马就会把注意焦点给转移了。

当然题主烦恼的并非是这种「秒级」、「毫秒级」的「多线程」,而是指在一个「时期」内,会同时担负几种不同的工作,完成不同的任务,这就是另一种意义上的,不同任务之间需要切换的「多线程」。「任务切换(task switching)」也可以算认知心理学中的一个经典课题了。

心理学家早就发现,当你从任务A切换到任务B后,执行任务B的绩效要明显比非任务切换条件下执行B的绩效差,这个差异称为「切换代价(switching cost)」。切换代价的形成原因主要有两种,一是任务A留下的认知惯性,也就是我之前已经习惯了任务A的认知情境、反应方式,这个惯性会对完成任务B造成干扰,二是做B的时候需要对B进行认知重构,重新回忆起B的相关背景和信息,这个重构也需要时间,而且可能不完整。

可现实就是这样,虽然不论从心理学还是从我们的生活经验来看,这种需要任务切换的「多线程」的感觉很糟,效率很低,但我们往往没有选择:一个任务做到一半被打断,然后去做另一个任务,然后又被打断,又去做另一个……这里有个至关重要的事实是:如果你是在非常投入和忘我的思考时被打断,那么你的「损失」和懊恼就会非常大,相反,如果你只是在做抄写一篇文档这种不动脑子的活,那么即便是频繁的中断也不会对你造成太大的影响。所以,如果你能选择好合适的中断点,中断就并不可怕,切换的损失也可以降到最低,如果说多任务工作有什么技巧的话,那么这个技巧就是「对中断点进行控制和管理的技巧」。

这个技巧的前提是,我们需要对要完成的任务进行有效地剖析,区分出「容忍中断」的部分和「无法容忍中断」的部分,然后用可保证的相对完整的时间去施行那些「无法容忍中断」的部分。为此我提出了一般任务分解的「三明治模型」: 这是一个金枪鱼三明治,它有一个核心,就是金枪鱼肉泥,完成这个部分的努力我称为「核心思考区间」。

事实上大多数任务都有一个至关重要、通常也是最棘手的部分,这个部分需要我们集中精力、非常专注地进行思考,然后将其破解,一旦这个部分被我们「吃下」,那么这个任务就已经完成了大半,余下的就是一些支持性的、补完性的工作(即「支持性思考区间)和一些「体力劳动」(即「操作性动作区间」)了。 我自己工作中有一个习惯,就是拿到一个任务后,势必要先去找那个任务的核心思考区间,找到那块硬骨头,去啃下来,而不是先去做那些周边的打扫性的工作。

举个简单的例子,如果你现在接到一个做PPT的任务,你第一步准备做什么?是先挑一个漂亮的主题模板吗?不是。是马上去百度谷歌查资料吗?也不是。

正确的答案是:设计PPT的架构。即你要分析你的受众,他们的知识水平、理解水平以及兴趣点、关注点,在此基础上设计你的内容以及展现内容的顺序,先讲什么,占比多少,再讲什么,占比什么,以及讲的时候采取什么风格、策略,然后,PPT的架构就出来了。

这个实施过程就是该任务的「核心思考区间」,你不需要任何辅助,你只需思考,非常专注的思考,你要的工具,仅仅是一张纸和一只笔(你需要把你的灵感快速地记下来)。等你完成了这个过程,你可以选择继续填充具体的内容(「支持性思考区间」),也可以break一下,也可以去做别的工作,都无所谓。

之后,等你在为这件PPT选择模板、寻找配图或者调整字体的时候(「操作性动作区间」),你并不大会介意被打断,因为你知道,这个任务在某种意义上,你已经完成了。 不瞒你说,为了写这个答案,我用了半个小时的时间、一张A4纸和一只笔,用我纯粹的、专注的思考,来设计它的「架构」。

设计完成后,我吃了一顿晚饭,看了一集美剧,这个写作的中断并没有让我担心,因为我知道,即便我还没有在电脑上敲入一个字,这个答案,其实已经写完了。 这就是多线程工作的秘诀。

很多时候,你只是需要一个专注不受干扰的、能纯粹跳脱出来思考的、能达至「心流」状态的、能把最关键的「硬核」搞定的——半小时。 这个方法背后暗含着这样一个逻辑:当我们不得不对一个任务进行分段处理时,我们并不应机械地按照时间段来切分(「今天上午9点至10点做A,明天下午1点至3点继续做A」),而是应该按照这。

8. Java多线程的几种写法

有三种:

(1)继承Thread类,重写run函数

创建:

class xx extends Thread{

public void run(){

Thread.sleep(1000) //线程休眠1000毫秒,sleep使线程进入Block状态,并释放资源

}}

开启线程:

对象.start() //启动线程,run函数运行

(2)实现Runnable接口,重写run函数

开启线程:

Thread t = new Thread(对象) //创建线程对象

t.start()

(3)实现Callable接口,重写call函数

Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。

Callable和Runnable有几点不同:

①Callable规定的方法是call(),而Runnable规定的方法是run().

②Callable的任务执行后可返回值,而Runnable的任务是不能返回值的

③call()方法可抛出异常,而run()方法是不能抛出异常的。

④运行Callable任务可拿到一个Future对象,Future表示异步计算的结果。它提供了检查计算是否完成的方法,以等

待计算的完成,并检索计算的结果.通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果

9. c++如何写多线程,分一个线程来实时更新结果,具体如下

#include

#include

#include

volatile HANDLE waitForStart;

volatile HANDLE waitForResult;

volatile int result;

DWORD APIENTRY task(LPVOID* p)

{

for(;;)

{

WaitForSingleObject(waitForStart, INFINITE);

++result;

SetEvent(waitForResult);

}

return 0;

}

int main()

{

HANDLE thread;

result = 0;

waitForStart = CreateEvent(0, FALSE, FALSE, 0);

waitForResult = CreateEvent(0, FALSE, FALSE, 0);

thread = (HANDLE)_beginthreadex(0, 0, task, 0, 0, 0);

CloseHandle(thread);

for(;;)

{

SetEvent(waitForStart);

WaitForSingleObject(waitForResult, INFINITE);

printf("%d\t", result);

}

return 0;

}

转载请注明出处育才学习网 » 怎么写多线程

知识

改电申请怎么写

阅读(166)

本文主要为您介绍改电申请怎么写,内容包括怎样写用电申请,用电申请书怎么写,用电申请怎么写。申请编号业务类别申请人 申请日期 归档号 归档日期变更用电内容:减容( )暂停( )暂换( )暂拆( )更名过户( )并户( )销户(

知识

明星的签名怎么写

阅读(173)

本文主要为您介绍明星的签名怎么写,内容包括怎么才能写出明星那样的艺术签名,明星的签名怎么就看不懂,明星签名的字怎么写的,我的名字能不能写成那样。凌雪燕

知识

贫因证明怎么写

阅读(191)

本文主要为您介绍贫因证明怎么写,内容包括家庭贫困证明怎么写,贫困证明怎么写,贫困证明怎么写。最低0.27元开通文库会员,查看完整内容> 原发布者:abfaaksf002003 第一篇: 兹有我_______省______市/县_

知识

盐英语怎么写

阅读(204)

本文主要为您介绍盐英语怎么写,内容包括“盐”的英语怎么写,盐的英语怎么读,盐用英语怎么写。盐的英语是salt,音标英 [sɔ:lt]、美 [sɔlt]。二、释义:n.盐;风趣;机智,讽刺;药用盐,泻盐This meat sho

知识

杭拼音怎么写的

阅读(180)

本文主要为您介绍杭拼音怎么写的,内容包括张家杭的拼音怎么写,杭学,这两字的拼音怎样写的,杭州的杭拼音怎么打。杭

知识

甩记怎么写

阅读(417)

本文主要为您介绍甩记怎么写,内容包括甩记是什么意思,怎么写甩记,演绎群的,甩记,独白,对戏,精分是什么啊,大概要怎么写搜狗,甩记一篇,两百字。今天我在我的水写布上练了一会毛笔字。水写布真实一个奇妙的东西,它很适合我这种初学毛笔字的学

知识

尧拼音怎么写

阅读(208)

本文主要为您介绍尧拼音怎么写,内容包括大尧的尧拼音怎么写,(尧)这是什么字啊,还有拼音是怎么写的、谢谢,尧怎么注拼音。yu禹yǔ 中文解释 - 英文翻译 禹的中文解释 以下结果由汉典提供词典解释部首笔画 部首:丿 部外笔画:8 总笔画:9 五笔86:TK

知识

建议提纲怎么写

阅读(203)

本文主要为您介绍建议提纲怎么写,内容包括建议大纲怎么写,小学六年级作文建议书提纲和格式怎么写,《我的建议》作文提纲快。你好项目建议书应参考如下格式和提纲进行编制:(一)封面格式:****(项目全称)项目建议书项目建设单位:*****编制单位:*****编

知识

汉字的字是行书怎么写

阅读(196)

本文主要为您介绍汉字的字是行书怎么写,内容包括汉字的古文字和行书的写法,汉字二字用行书怎么写,“的”字的硬笔行书是怎么写,什么形态。用笔特点行书是介于楷、草间的一种书体。写得比较放纵流动,近于草书的称行草;写得比较端正平稳,近于楷

知识

鹿的日文怎么写

阅读(220)

本文主要为您介绍鹿的日文怎么写,内容包括鹿白的日文怎么写怎么读,梅花鹿日文,梅花鹿日语翻译,梅花鹿日文怎么说,日文,鹿日语和韩语怎么说。鹿儿 这个名字怎么写。。是不是kako。。对,【鹿児】单独读的时候读【かこ】【kako】日本九州有个县

知识

富贵竹怎么写

阅读(239)

本文主要为您介绍富贵竹怎么写,内容包括富贵竹作文怎么写,富贵竹从从近到远作文怎么写,写富贵竹的作文400字数。它,没有玫瑰那样的艳丽多彩,也没有荷花那样的婀娜多姿,更没青松那样的高大挺拔,只是一株淡雅文静,朴素无华的植物。它就是富贵竹了

知识

出租车位怎么写

阅读(187)

本文主要为您介绍出租车位怎么写,内容包括车位出租怎么写,出租车位合同怎样写,小区车位出租协议怎么写。租赁合同出 租 方:身份证号码:承 租 方:身份证号码:根据《中华人民共和国合同法》及有关规定,为明确出租方与承租方的权利义务关系,经双

知识

最近的英文怎么写

阅读(404)

本文主要为您介绍最近的英文怎么写,内容包括最近的英文怎么写,最近的英文单词怎么写,最近的英文怎么写。翻译:How recently?单词分析:how英 [haʊ] 美 [haʊ] adv.怎样;健康状况如何;到何种地步;以任何方式n.方

知识

邦的英文怎么写

阅读(195)

本文主要为您介绍邦的英文怎么写,内容包括邦英语怎么说,王邦的英文名怎么写,邦馨的英文怎么写。Wendy 温迪 来源:条顿 名人:,张雯婷 GWENDOLYN,WANDA的简写。大部份的人认为WENDY是矮小可爱的女人,既友善又甜

知识

怎么用多线程

阅读(203)

本文主要为您介绍怎么用多线程,内容包括如何正确设置多线程,如何使用线程,怎么理解多线程,为什么要用多线程。java平台从开始就被设计成为多线程环境。在你的主程序执行的时候,其它作业如碎片收集和事件处理则是在后台进行的。本质上,你可以

[/e:loop]