黑马程序员_多线程

进程(process):是windows系统中的一个基本概念,它包含着一个运行程序所需要的资源,整个应用程序隔离的空间。

 

应用程序域:它提供安全而通用的处理单元,公共语言运行库可以使用它来提供应用程序之间的隔离。所以的c#代码都是跑在应用程序域

 

线程:是windows任务调度的最小单位,每个线程都有自己的专有的寄存器,但代码区都是共享,不同的线程可以执行同样的代码

 

一个进程可以有多个应用程序域,一个应用程序域可以执行多个线程,但是同一时间只能在一个应用程序域中执行,线程可以穿透应用程序域,线程属于进程。

 

===================进程================

//启动进程

Processprcess=Process.Start("iexploer.exe","http://www.baidu.com");

 

var  prcesses=Process.GetProesses();

foreache(varitem in prcesses)

{

console.writeline(item.ProcessName);

}

 

//获取当前进程

Processp=Process.GetCurrentProcess();

Thread.sleep(1000);

P.kill();

 

=======================应用程序域==================

//启动应用程序域

if(AppDomain.CurrentDomain.IsDefaultAppDomain())

{

console.writeLine("这是主应");

}

//自己写一个AppDomain

AppDomainSetupappDomainSetup=new AppDomainSetup();

appDomainSetup.Loaderoptimization=LoaderOptimization.SingleDomain;

 

AppDomain appDomain=AppDomain.CreatDomain("应用程序名称.exe",null,appDomainSetup);

appDomain.ExecuteAddembly("应用程序名称.exe")

 

========================线程===============================

CLR线程  操作系统线程

 

Main{//获取当前线程

Threadmainthread=Thread.CurrentThread;

console.writeLine("主线程Id:{0}",mainthread.MangeThreadId);

//创建一个线程

Threadthread=new Thread(DoWork);

//设置线程名称

thread.Name="shit";

//设置后台线程:只要所有的前台线程结束,后台线程自动结束

/ 前台线程:只有所有的前台线程都关闭才能完成程序关闭

thread.IsBackground=true;

//启动一个线程(不是真正的启动,告诉cpu当前线程可以执行)

thread.Start(//取决DoWork方法是否含有参数);

//终止一个线程

thread.Abort();

 

staticvoid DoWork()

{

console.writeLine("子线程:{0}",Thread.CurrentTHrea.MangedThreadId);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值