ThreadPool学习草稿1
原文发布时间为:2010-10-27 —— 来源于本人的百度文章 [由搬家工具导入]
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace TestThreadPool
{
class Program
{
static object locker = new object();
static int runningThreads = 0;
static void Main(string[] args)
{
try
{
ThreadPool.SetMaxThreads(4, 4); //设置最大线程数 using System.Threading;
runningThreads = 10;
for (int i = 0; i < runningThreads; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(Auto), i);//线程池指定线程执行Auto方法
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
int iWhileNumber = 0;
lock (locker)
{
while (runningThreads > 0)
{
Monitor.Wait(locker);
iWhileNumber++;
}
}
Console.WriteLine("结束了,共循环了" + iWhileNumber + "次");
//Environment.Exit(0);
Console.ReadLine();
}
public static void Auto(object i)//多线程执行的方法
{
try
{
int d = 4 / (int)i;
if (string.Equals(i, 2))
{
Thread.Sleep(1000);
}
Console.WriteLine(i.ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
lock (locker)
{
runningThreads--;
Monitor.Pulse(locker);
}
}
}
}
}
ThreadPool学习草稿1的更多相关文章
- Gradle学习草稿
参考博客:http://www.cnblogs.com/davenkin/p/gradle-learning-1.html Android Plugin DSL Reference http://go ...
- C#ThreadPool学习
一.简介 提供一个线程池,该线程池可用于执行任务.发送工作项.处理异步 I/O.代表其他线程等待以及处理计时器 注意:线程池中启动的线程都是后台线程 二.主要方法 GetAvailableThread ...
- linux内核编程学习——草稿
第一章 1.1 文件IO c标准函数与系统函数的区别 FILE文件类型是一个结构体类型,包括文件描述符(inode).位置指针(f_pos).缓冲器(buffer)(8192byte). c标准文件函 ...
- boost::asio 学习草稿
http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting-started-with-boostasio/ 可以多个线程拥有io_ ...
- C#的特性学习草稿
原文发布时间为:2008-11-22 -- 来源于本人的百度文章 [由搬家工具导入] 举个简单的例子: 先定义个特性 从Attribute继承,并标明用法 [AttributeUsage(Attrib ...
- C#线程和异步
C#Thread学习 C#ThreadPool学习 C#Task学习 C#backgroundWorker c# 锁的使用 C#前台线程和后台线程区别 C#Async,await异步简单介绍 C#委托 ...
- HTTPS 原理分析——带着疑问层层深入
HTTPS 随着 HTTPS 建站的成本下降,现在大部分的网站都已经开始用上 HTTPS 协议.大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL .非对称加 ...
- 关于线程池ThreadPool的学习
学习重点ThreadPool.SetMinThreads(out workerThreads, out completionPortThreads).这是整个线程池的关键. 而ThreadPool. ...
- threadpool源码学习
threadpool源码学习 __all__ = [ 'makeRequests', 'NoResultsPending', 'NoWorkersAvailable', 'ThreadPool', ' ...
随机推荐
- 2018.10.30 NOIp模拟赛T2 数字对
[题目描述] 小 H 是个善于思考的学生,现在她又在思考一个有关序列的问题. 她的面前浮现出一个长度为 n 的序列{ai},她想找出一段区间[L, R](1 <= L <= ...
- vue.js devtools安装
在调试的时候chrome会提示安装vue devtools,我以为是要在chrome的程序商店直接安装,但是国内对谷歌的和谐,无法访问谷歌商店内容 官方有源代码,可以下载下来自行编译安装 官方地址:h ...
- c语言——字符串
char str[] = "http://c.biancheng.net"; char str[] = "http://c.biancheng.net"; ch ...
- 初识java,编写hello world语句
JDK: Java Develpment Kit - java开发工具包 JRE: Java Runtime Environment - java运行环境 JVM: Java Virtual Mach ...
- python-PIL模块的使用
PIL基本功能介绍 from PIL import Image from PIL import ImageEnhance img = Image.open(r'E:\img\f1.png') img. ...
- Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
Unable to execute dex: Multiple dex files define Lcom/myapp/R$array; 我这个问题最后解决方式是,吧工程里面用同一个v4包. 很明显, ...
- TCP/IP网络编程之优于select的epoll(二)
基于epoll的回声服务端 在TCP/IP网络编程之优于select的epoll(一)这一章中,我们介绍了epoll的相关函数,接下来给出基于epoll的回声服务端示例. echo_epollserv ...
- 【Gitlab+Jenkins+Ansible】构建自动化部署
说明: Gitlab.Jenkins.生产服务器.测试服务器上都需要安装Git. 一.安装Gitlab 1.主机配置 IP: 10.10.10.105 OS: CentOs7. Gitlab版本:gi ...
- mysql进阶三四五六
排序查询 一.语法 select 查询表 from 表 where 筛选条件 order by 排序列表[asc / desc] 特点: 1.asc:升序 desc:降序 2.排序列表之中支持单字段, ...
- 驱动模块 .ko
模块: 模块机制,作用搞高LINUX操作系统的扩充性. 1. 模块概念: 1.动态可加载内核模块LKM 2.内核空间运行 3.是不是一执行文件,是一个没有经过链接,不能独立运行的一个目标文件(.c-& ...