|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
数据挖掘有点高深的,主要估计就是使用一些算法提取一些实用的数据。学好数据挖掘的话可以应聘baidu或者google,但是一般人家对算法的要求听高的。你最好还是学点应用型的吧。这种主要是研究型的。visual|程序|多线程 .NET将关于多线程的功效界说在System.Threading名字空间中。因而,要利用多线程,必需先声明援用此名字空间(usingSystem.Threading;)。
即便你没有编写多线程使用程序的履历,也大概传闻过“启动线程”“杀逝世线程”这些词,实在除这两个外,触及多线程方面的另有诸如“停息线程”“优先级”“挂起线程”“恢单线程”等等。上面将一个一个的注释。
a.启动线程
望文生义,“启动线程”就是新建并启动一个线程的意义,以下代码可完成:
Threadthread1=newThread(newThreadStart(Count));
个中的Count是将要被新线程实行的函数。
b.杀逝世线程
“杀逝世线程”就是将一线程鸡犬不留,为了不白搭力量,在杀逝世一个线程前最好先判别它是不是还在世(经由过程IsAlive属性),然后就能够挪用Abort办法来杀逝世此线程。
c.停息线程
它的意义就是让一个正在运转的线程休眠一段工夫。如thread.Sleep(1000);就是让线程休眠1秒钟。
d.优先级
这个用不着注释了。Thread类中有一个ThreadPriority属性,它用来设置优先级,但不克不及包管操纵体系会承受该优先级。一个线程的优先级可分为5种:Normal,AboveNormal,BelowNormal,Highest,Lowest。详细完成例子以下:
thread.Priority=ThreadPriority.Highest;
e.挂起线程
Thread类的Suspend办法用来挂起线程,晓得挪用Resume,此线程才能够持续实行。假如线程已挂起,那就不会起感化。
if(thread.ThreadState=ThreadState.Running)
{
thread.Suspend();
}
f.恢单线程
用来恢复已挂起的线程,以让它持续实行,假如线程没挂起,也不会起感化。
if(thread.ThreadState=ThreadState.Suspended)
{
thread.Resume();
}
上面将列出一个例子,以申明复杂的线程处置功效。此例子来自于匡助文档。
usingSystem;
usingSystem.Threading;
//Simplethreadingscenario:Startastaticmethodrunning
//onasecondthread.
publicclassThreadExample{
//TheThreadProcmethodiscalledwhenthethreadstarts.
//Itloopstentimes,writingtotheconsoleandyielding
//therestofitstimesliceeachtime,andthenends.
publicstaticvoidThreadProc(){
for(inti=0;i<10;i++){
Console.WriteLine("ThreadProc:{0}",i);
//Yieldtherestofthetimeslice.
Thread.Sleep(0);
}
}
publicstaticvoidMain(){
Console.WriteLine("Mainthread:Startasecondthread.");
//TheconstructorfortheThreadclassrequiresaThreadStart
//delegatethatrepresentsthemethodtobeexecutedonthe
//thread.C#simplifiesthecreationofthisdelegate.
Threadt=newThread(newThreadStart(ThreadProc));
//StartThreadProc.Onauniprocessor,thethreaddoesnotget
//anyprocessortimeuntilthemainthreadyields.Uncomment
//theThread.Sleepthatfollowst.Start()toseethedifference.
t.Start();
//Thread.Sleep(0);
for(inti=0;i<4;i++){
Console.WriteLine("Mainthread:Dosomework.");
Thread.Sleep(0);
}
Console.WriteLine("Mainthread:CallJoin(),towaituntilThreadProcends.");
t.Join();
Console.WriteLine("Mainthread:ThreadProc.Joinhasreturned.PressEntertoendprogram.");
Console.ReadLine();
}
}
此代码发生的输入相似以下内容:
Mainthread:Startasecondthread.
Mainthread:Dosomework.
ThreadProc:0
Mainthread:Dosomework.
ThreadProc:1
Mainthread:Dosomework.
ThreadProc:2
Mainthread:Dosomework.
ThreadProc:3
Mainthread:CallJoin(),towaituntilThreadProcends.
ThreadProc:4
ThreadProc:5
ThreadProc:6
ThreadProc:7
ThreadProc:8
ThreadProc:9
Mainthread:ThreadProc.Joinhasreturned.PressEntertoendprogram.效率会有不少的变化。而实际上java是基于堆栈机器来设计,这和我们常见的基于寄存器的本地机器是差异比较大的。总体来说,这是一种虚拟机的设计思路。 |
|