当前位置: 首页 > news >正文

高权重网站收录问题包工头接活app哪个好

高权重网站收录问题,包工头接活app哪个好,网站开发培训价格,修改wordpress域名C#多线程编程 一、使用线程的理由 1、可以使用线程将代码同其他代码隔离#xff0c;提高应用程序的可靠性。 2、可以使用线程来简化编码。 3、可以使用线程来实现并发执行。 二、基本知识 1、进程与线程#xff1a;进程作为操作系统执行程序的基本单位#xff0c;拥有应用程…C#多线程编程 一、使用线程的理由 1、可以使用线程将代码同其他代码隔离提高应用程序的可靠性。 2、可以使用线程来简化编码。 3、可以使用线程来实现并发执行。 二、基本知识 1、进程与线程进程作为操作系统执行程序的基本单位拥有应用程序的资源进程包含线程进程的资源被线程共享线程不拥有资源。 2、前台线程和后台线程通过Thread类新建线程默认为前台线程。当所有前台线程关闭时所有的后台线程也会被直接终止不会抛出异常。 3、挂起Suspend和唤醒Resume由于线程的执行顺序和程序的执行情况不可预知所以使用挂起和唤醒容易发生死锁的情况在实际应用中应该尽量少用。 4、阻塞线程Join阻塞调用线程直到该线程终止。 5、终止线程Abort抛出 ThreadAbortException 异常让线程终止终止后的线程不可唤醒。Interrupt抛出 ThreadInterruptException 异常让线程终止通过捕获异常可以继续执行。 6、线程优先级AboveNormal BelowNormal Highest Lowest Normal默认为Normal。 三、线程的使用 线程函数通过委托传递可以不带参数也可以带参数只能有一个参数可以用一个类或结构体封装参数。 namespace Test {class Program{static void Main(string[] args){Thread t1 new Thread(new ThreadStart(TestMethod));Thread t2 new Thread(new ParameterizedThreadStart(TestMethod));t1.IsBackground true;t2.IsBackground true;t1.Start();t2.Start(hello);Console.ReadKey();}public static void TestMethod(){Console.WriteLine(不带参数的线程函数);}public static void TestMethod(object data){string datastr data as string;Console.WriteLine(带参数的线程函数参数为{0}, datastr);}} } 四、线程池 由于线程的创建和销毁需要耗费一定的开销过多的使用线程会造成内存资源的浪费出于对性能的考虑于是引入了线程池的概念。线程池维护一个请求队列线程池的代码从队列提取任务然后委派给线程池的一个线程执行线程执行完不会被立即销毁这样既可以在后台执行任务又可以减少线程创建和销毁所带来的开销。 线程池线程默认为后台线程IsBackground。 namespace Test {class Program{static void Main(string[] args){//将工作项加入到线程池队列中这里可以传递一个线程参数ThreadPool.QueueUserWorkItem(TestMethod, Hello);Console.ReadKey();}public static void TestMethod(object data){string datastr data as string;Console.WriteLine(datastr);}} } 五、Task类 使用ThreadPool的QueueUserWorkItem()方法发起一次异步的线程执行很简单但是该方法最大的问题是没有一个内建的机制让你知道操作什么时候完成有没有一个内建的机制在操作完成后获得一个返回值。为此可以使用System.Threading.Tasks中的Task类。 构造一个TaskTResult对象并为泛型TResult参数传递一个操作的返回类型。 namespace Test {class Program{static void Main(string[] args){TaskInt32 t new TaskInt32(n Sum((Int32)n), 1000);t.Start();t.Wait();Console.WriteLine(t.Result);Console.ReadKey();}private static Int32 Sum(Int32 n){Int32 sum 0;for (; n 0; --n)checked{ sum n;} //结果太大抛出异常return sum;}} } 一个任务完成时自动启动一个新任务。一个任务完成后它可以启动另一个任务下面重写了前面的代码不阻塞任何线程。 namespace Test {class Program{static void Main(string[] args){TaskInt32 t new TaskInt32(n Sum((Int32)n), 1000);t.Start();//t.Wait();Task cwt t.ContinueWith(task Console.WriteLine(The result is {0},t.Result));Console.ReadKey();}private static Int32 Sum(Int32 n){Int32 sum 0;for (; n 0; --n)checked{ sum n;} //结果溢出抛出异常return sum;}} } 六、委托异步执行 委托的异步调用BeginInvoke() 和 EndInvoke() namespace Test {public delegate string MyDelegate(object data);class Program{static void Main(string[] args){MyDelegate mydelegate new MyDelegate(TestMethod);IAsyncResult result mydelegate.BeginInvoke(Thread Param, TestCallback, Callback Param);//异步执行完成string resultstr mydelegate.EndInvoke(result);}//线程函数public static string TestMethod(object data){string datastr data as string;return datastr;}//异步回调函数public static void TestCallback(IAsyncResult data){Console.WriteLine(data.AsyncState);}} } 七、线程同步   1原子操作Interlocked所有方法都是执行一次原子读取或一次写入操作。   2lock()语句避免锁定public类型否则实例将超出代码控制的范围定义private对象来锁定。   3Monitor实现线程同步     通过Monitor.Enter() 和 Monitor.Exit()实现排它锁的获取和释放获取之后独占资源不允许其他线程访问。     还有一个TryEnter方法请求不到资源时不会阻塞等待可以设置超时时间获取不到直接返回false。   4ReaderWriterLock     当对资源操作读多写少的时候为了提高资源的利用率让读操作锁为共享锁多个线程可以并发读取资源而写操作为独占锁只允许一个线程操作。   5事件Event类实现同步     事件类有两种状态终止状态和非终止状态终止状态时调用WaitOne可以请求成功通过Set将时间状态设置为终止状态。     1AutoResetEvent自动重置事件     2ManualResetEvent手动重置事件   6信号量Semaphore       信号量是由内核对象维护的int变量为0时线程阻塞大于0时解除阻塞当一个信号量上的等待线程解除阻塞后信号量计数1。       线程通过WaitOne将信号量减1通过Release将信号量加1使用很简单。   7互斥体Mutex       独占资源用法与Semaphore相似。    8跨进程间的同步       通过设置同步对象的名称就可以实现系统级的同步不同应用程序通过同步对象的名称识别不同同步对象。     作者阿凡卢 出处http://www.cnblogs.com/luxiaoxun/ 转载于:https://www.cnblogs.com/mjq5150/p/6273274.html
http://www.zqtcl.cn/news/355003/

相关文章:

  • 自助建站公司四平市住房和城乡建设部网站
  • 淄博网站seo价格世界新闻最新消息
  • 网站开发 毕业答辩pptwordpress qq邮箱订阅
  • 国家icp备案网站群辉域名登录wordpress
  • 仙居住房和城乡建设规划局网站可以做思维导图的网站
  • 企业网站建设费怎么入账石家庄定制网站建设服务
  • 遂宁建设网站如何搭建微信公众号平台
  • 咖啡网站源码公司网站手机版
  • 新能源网站开发网站做5级分销合法吗
  • 西安建设网站排名简约风网站首页怎么做
  • 安远做网站做服务网站要多少钱
  • 功能网站模板电商平台项目商业计划书
  • 阿里巴巴国际站入驻费用及条件广州做网站比较好的公司
  • 淄博营销网站建设阳泉营销型网站建设费用
  • 珠海网站开发定制常德网站建设详细策划
  • 做电影网站侵权哈尔滨网站开发
  • 中国联通网站备案系统Wordpress建立空白页面
  • 郑州网站建设 郑州网站制作wordpress删除模板
  • 北京网站设计培训wordpress vps 伪静态
  • 做网站和编程有关系吗seo百家外链网站
  • 网站新闻怎么写最新事故案例100例
  • 网站中的表格seo宣传网站
  • 河南锦路路桥建设有限公司网站网站建设会考什么
  • 高校网站建设研究意义餐饮vi设计案例
  • 触屏手机网站网站建设功能模块价格
  • 类似携程网的网站wordpress文章摘要调用
  • 好网站建设公司开发方案联盟营销的网络营销方式
  • logo免费生成网站洛阳网络建站公司
  • 建设工程部网站百度指数功能
  • 个人网站 商业时事新闻2022最新10月