上一篇文章我们总结了多线程最基础的知识点Thread,我们知道了如何开启一个新的异步线程去做一些事情。可是当我们要开启很多线程的时候,如果仍然使用Thread我们需要去管理每一个线程的启动,挂起和终止,显然是很麻烦的一件事情。还好.net framework为我们提供了线程池ThreadPool来帮助我们来管理这些线程,这样我们就不再需要手动地去终止这些线程。这一篇文章就让我们来学习一下线程池ThreadPool吧。关于它我想从以下几个方面进行总结。

  1. 认识线程池ThreadPool
  2. ThreadPool的用法

ThreadPool类是一个静态类,你不能也不必要生成它的对象。而且一旦使用该方法在线程池中添加了一个项目,那么该项目是无法取消的。这里你无需自己建立线程,我们只需要把要做的工作写成函数,然后作为参数传递给ThreadPool.QueueUserWorkItem()方法就行了,传递的方法是依靠WaitCallBack代理对象,而线程的建立,管理和运行等工作都是由系统自动完成的,你无须考虑那些复杂的细节问题了。

我现在在之前的例子的基础上,使用线程池ThreadPool来实现。代码如下。

namespace ThreadDemo
{
class Program
{
static void Main(string[] args)
{
// 使用ThreadPool实现
Fish fish1 = new Fish { Name = "小黄鱼" };
Fish fish2 = new Fish { Name = "大鲨鱼" };
Fish fish3 = new Fish { Name = "灯笼鱼" };
Fish fish4 = new Fish { Name = "红鲤鱼" };
Fish fish5 = new Fish { Name = "灯笼鱼" };
ThreadPool.QueueUserWorkItem(f => { fish1.Move(); }); //lambda表达式
ThreadPool.QueueUserWorkItem(f => { fish2.Move(); });
ThreadPool.QueueUserWorkItem(f => { fish3.Move(); });
ThreadPool.QueueUserWorkItem(f => { fish4.Move(); });
ThreadPool.QueueUserWorkItem(f => { fish5.Move(); }); Console.ReadKey();
}
} /// <summary>
/// 鱼
/// </summary>
public class Fish
{
public string Name { get; set; } public int Score { get; set; } public Fish()
{
} public void Move()
{
Console.WriteLine(string.Format("{0}在游来游去...", Name));
}
}
}

程序运行结果如下。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZUAAADuCAIAAAB+qw3aAAAZH0lEQVR4nO2cZ5gVRdqG5++6Obk5mXPOcRQjBgQkg4KCSs45zcCQcxxyBsmIIooyeoxEXVnHXdd119XVwYjEmQHh6+9HYVlU6rf7dJ/p6vPcV119VVdXv119Zurm7To9FJS/tdXzvPK3tqKgoKA4UYqKigoLCz3PKyiHv1BQUJwqen+ddFq78OX0dt8/vf33z2j/gzM6/ODMDj88s8MPz+r4o7M6/ujsTj8+u9OPz+n0k3M6/+Tczj89t8tPz+vys/O6/uz8rj8/v+vPL+j2iwu6/eLC7r+8sPsvL+p+8kU9Tr64x8kX9/zVJT1/dUnPX1/a69eX9vrNZb1/c1nv317e57eX9/ndFX1+d0Xf31/Z9/dX9vvDVf3+cHW/P17d/4/X9P/TNQP+dO2AP1878M/XDfzLdQP/cv2gU64fdMoNg0+9YfCpNw4+9cai0wqLTissPv2m4tNvKj7j5iFn3DzkzFpDz6w19KxbSs66peTsW0vOvnXYObcNO+e24efePvzc24efd8eI8+4Ycf6dI8+/c+QFtUddUHvUhXeNuvCu0RfdPfqiu8dcdM+Yi+8dc/G9Yy+pM/aSOuMuvW/cpfeNu6zu+Mvqjr+83oTL6024ov7EK+pPvPL+iVfeP+mqBpOuajD56oaTr244+ZpGU65pNOXaxlOvbTz1uibTrmsy7fqm065vOv36ZtNvaFZ6Q/PSG5uX3thiRmGLGYUPzLzpgZk3PTjz5gdn3dxyVq2Ws2u1mn1Lqzm3PDTn1ofn3Prw3Ntaz72t9bzb28y7vc28Ox6Zf8cj8+98dMGdjy6o/djC2o8trN124V1tF93VbtHd7Rbf3X7xPe0X39Nhyb0dltzbcWmdjkvrdFp6X6dl93VeVrfz43W7PF6vy/J6XZfX77q8frcV93dbcX/3lQ26r2zQY2XDHqsa9lzVqOfqRr1WN+q1unHvNY37rGnSZ22Tvmub9l3XtN+6Zv3WNev/RPP+TzQfsL7FgPUtBq5/YOCTDwx68sFBTz04+KmWgze0LNrQqmhDq+KnHyp++qEhGx8esvHhoRtbD32mdckzrUuebTPs2TbDnn1k+KZHhm96dMRzj4547rGRzz828vm2o55vO2pzu9Gb240uaz+mrP3Ysg5jX+gw7oWO417sOP7FTuMznSZkOk/IdJ74UpeJL3WZ9HLXSS93nfxy18mvdJvySrcpr3af+mr3qa/2mPZaj2mv9Zz+es/pr/cq3dKrdEvvGVt6z9jaZ+bWPjO39Z21re+sbf1mb+83e3v/OTv6z9kxYO7OAXN3Dpy3c+C8NwbNf2PQ/DcHLXhz8MI3By/8a9GivxYteqt48VvFi98asmTXkCW7hi7929ClfytZ9nbJsreHPf72sMfLhy8vH778nREr3hmx4p2RK/8+cuXfR636x6hV/xi9+t3Rq98ds+bdMWv+OWbtP8eufW/suvfGrXtv3BP/Gv/Ev8avf3/C+vcnPPn+xCf/PfGpf0966j+TNvxn8oYPJj/9wZSNH0zZ+N+pz/x36jMfTnv2w2nPfjh900fTN31U+tz/Sp/734znP57x/MczNn88c/MnM8s+mVVWMeuFitkvVMx+cfecF3fPyXw6N/Pp3Jc+nffSZ/Ne/mz+y5/Pf+XzBa98seDVLxa++sXC175c9NqXi17/avHrXy3e8tWSLXuWbN2zdOvXS7d9vWz73oQX+Av+gr/gr/T6q7hkJLHc3qDfSae1hb/gL/grTf7ygsA8Eqh/uKtQ/bVl2w5t2bZ95/adb2zb8cbW7TtZS3HJyJNOaQN/wV/wV8r8FXQdKlD/cFeh+qvy8DfEUlwy8ns16i/mZslfrFHyF2sM7S92evL9xcaZen+x20yUv9iQ8txfBWZy56+jR49uLtvVYNCqRkNWNBmxvNm4pQ9MWbS7ouJwdRUv17VbcLi6SusvMetj/mJ17i+xQzb+Oi6vE/Mv1ijlX6yR5V9SXkrx17fyqpn8iw/V11/fyStrf7FQR745mkB/HZfXhEzniS+JP0ruL7Z74NARz0qE/mIBWf6lXmj06nd5PQ5/8eDu+kvso7YE89exo0c3l+3qNG1D11lPdZ//RM8la/usWEX0F/scKfkX65l7f3GFnVlrKKsk3F83PziLDSCX/mrQfaXngr+6fKswKf9i/uox7TV2tFfpFs/zPvx0v+d53xw9Ftpf7ERff338ZaV4IZZ/xeevmWWfJMdf2m6U/EsUlqSzYP7af7Byc9muwUs31Rk5u/boyfdMnFB3+hjmr+rqquqqysPVVXVLx+TMX6xnDvzFduGvdPjL87zPv67k/mLPj0wroZ8fKf5iz4/sQuLzI/zl+/yo5mth/HXgYOXmsl13DJ9617hJdaaMrzdjdIN5w3dXVFRXV/P8q+3GTqq/vBNh/uK7FH/xzr75F+smrd8fl9eJ6/ffyqsoXP7F+vD1e+keRX+J7dxfno6Dhw7zOvcXbxH9JZ5Vq9VsXv/sywO8zvzF6nz93vO8jz/dx7ee53F/8ROZv1j9UNV3T1uiv8QBNO69RrqRZv3WSS2iv3ij6C+xM/cXb+H+ksJyf7Fdcf2etWTjL34V7i/p6sxfYovoL9Yird97Bn8xmL9YvfrIMd7O/cVbRH/xRtFfYljX/aV9kAzur0NVm8t23TNh4n3TxtafNarRgpKmS4t2V1QcOVwtPkLS8y/W6Osv1nLyxT1YJbH+qvh8n+d5uz8/7gXmL1a/rO54VmH+YvWrGkxiFZZ/8d82Mf9iLTc0L2UV5i9Wl/IvVr/14bmswvMvtuvrL1av0+m4xVj+xYek5l+snedfbFfKv1hjiwHrWYX5i9VbFm1gFeYvVm899BlWYf5i9UdHPMcqor/U/Iu1U/wlrn9Z/MU69J+zg1VEfxHzL9ZI9NfYte+xCsu/+AjF/Iu1TNn4Aaswf7H69E0fsQrzF6sj/9L4q27pmAZzRjReNLT5skEtV/XdXVFxuKoyB/7iWPzFOkjvT7BG6f0J1ii9P8EaKf5iHcT3Jzw/f0nPj/x2+POj53kHDx1Wnx/Fe/f1F4M/P7Jd6f0JsSd/fmS7qr8OVR1Rnx854vMjb7T7S8y/PMVf4vOjdyL8+ZG3cH+xXen9CdaYpb84/PmRt9j9xVrU9yc8sr+qjxyTnh+lIan5l5dGf0W2/sX81XD+sKZLilssH9BqTZ/W63vsrqjY8S3VVVX79u3d+/WemPIv3/V71jP5/mKN0vqXp/MX60nJv2556DuF+frru+QrlL/Y+hfrKa1/scbQ+ZfqL9P6FztK9Bera9fvffMv7foXO1oj/pLWv1hj7vMv0zeJ0foryu8fD1VWL1q8dnPZLrGI/jp08OCePXv2fPVVoPUvz/PU9ycY6vqXJ+RfbDcqf0mXFt+fYC3h/KVd/5KudXXDyeKuJf/yPE9d//I8T/SXuH7PWij+Mq1/MaT3JzzP+2LPIV7Xrn9xfzG0618MyvqXd+LzI8fkL8/Knv3VrML8JR7Srn95Jz4/csT3J3ijxV/iucxffHef4a0Oaf1ePKTNvzymsBPXvzzPm/3iblaR/MUaJX+xxmj9Fe79CUqWR/XX1/urvGOHPe/I0cOHvGPVnnfM84783zeV1VWVVZWVBw7s37tv7759ew/s31cj76+yD116/541Su/fs8bQ79+z07N5/55FYPkXq0fy/ioLxf3Fdmvw/Xs2gLi/f2RXSdT792xIeP8+nIni8le/gUO1f+04fNTYEaMnDBFabqvXDX8/ZH9/Qvy3Mfv373mo5Pz9kHiD+Puh1PiriAzzSKD+4a5C9ddJpz72vVPaUMpJp7TB328n6u+H8PeP8Ff2/iqMmXBXIfsL/38O/AV/5bG/klzgL/gL/oK/0ugvFBQUlOQXvb/oy2kAAJBjRFPp/RXZGh0AAESHaiq9v7Svn2UyGcvLaaaelLPokUOfIvWPfFRxxwcgfQR6YIzdXxk/LCcGvfMQgojcqnHHByDdMPNQYF5KYv4VyHRRjSQqv8QdH4AUU07+5jCh/tIeVRt9MzuT+9iudFTbP0TwQPEpl7B8UACkj6T4izj51fkc6CrEDto+vtcNdKG44wOQD8TuL9O0DCcR6Wi4fCSjy7Do3XxH5VvPJr4lAgD5Ro35S93ljRQZZb59zrIEJGZndH/xYdgVqTURxV/E+L4jByBP0PqrQPe9ZPT+8m2xn6s2+vpLawSiIyjG1J5iv0SI+MSjAKQe1V/ioWz9RRGKpYXiLztqZDXBsZxSYPWLVKeTy/gApBjJX+rReP2l7UOflvb4WheocSwTXo1g8ov2XF+bZBnfchSAfEA0j6lDSH8RTUGRTohziadYukn2Ef1CFKuqpKjim8ICkFfEtX5PdIfaGNRfdihjsIjA5Bf7ibxdrUQS335I6qb9HIK2A5BMYv/+UYQyMQLJKATh/KU1kWn+azuYfBEovuW6pp7wF0gxifOX2jPa6RSTv+x6MnUL4S+61ABIPTnyV8a8EqRCFwGRoCeahs2PEm+H2IEeP9CdApB6yoP8h4NZ5V/E2WXqFtXkDBonm/Fk0yfE/cJfIN+g/J9fIvE+P2o7RGWKLE9R87hoLxF3fADSB+XJkZccrd/7VsJFzmYw6m4kfok7PgDppjw5//+Xafb6zuoQK0H0mR9oJCGuEnd8AFJMsr5/9M2w1A7ER06t40xoryse1fYPETxQfMolTJ8eAKkkWf7SdrPMTG2771UowzCJhh7B3i3u+ADkA3H5i5iMiG6y76rQI6snWnZ9u9mtYdKQXVj0+JYIAOQbycq/MuTXxLQ9KWLy9YglGneiXZFaE1H8RYzvO3IA8oTcvf9VEOSxiJJGqQF9/aWNRnQExZjaU+yXCBGfeBSA1JO797+IuVUgv6ims4hPHADxlAKrX6Q6nVzGByDFMO3Qt/H6K+i0NLlA3c2YUyHLkNQIJr9oz/W1SZbxLUcByAcCyUsSWeC/f1Trah9LAmI6hbhrajR1k+wjDo8oVouys4xvCgtAXpGj/CtE2qISqLPdLPYWy7ApN8Lb1Uok8e2HpG7azyFoOwDJJBf5V5bK8D0lEOEGozWRaf5rO5h8ESi+5bqmnvAXSDGx51/0ScjbTURywzH5y64nU7cQ/gr6eQKQYuLNv+yTKpspZ9GcXXyB+mdOfKbjR6X20DcYNH6gOwUg9cSVfxGnkzhj6WRzw0FPN/Un3l2s8bM/BQCniX39K9CkCj0DczDbM0oeF+0l4o4PQPqosfUvLeocJiZfMfnL4pRI/BJ3fADSTU7Xv+w+Utv5UbVCD6uFPvNNTonKL3HHByDFxJt/mbxj0pBUp/jLNxRvoaOGUsWq9g8RPFB8yiXUjwKAFBNj/pUxZxOmaSzVfaeodsb6TmPKPCeOMPSF4o4PQD4Q7/eP9qRDbVTTEKl/oGTENL0pErR0s1vDpCHfD4EY3xIBgHyjZr5/tDSqW0vFbiLipen+EsVqUaTJtlHF9x05AHlCjta/JOj+UrHE8fWX1ghER1CMqT3FfokQ8YlHAUg9OVr/kjBNe6KnTKdQZGcxo91uql+kOp1cxgcgxeRo/cs0adVGdRqb+vt207pADWWZ8GoEk1+05/raJMv4lqMA5APJyr/UbSAP0i1J6SZdzjIwyr1EG98UFoC8Ivb377XYp7Svp0yn2GVnCmURgckvvqMyVSKJbz8kddN+DkHbAUgmufj+ke4jExHOqHD+0prINP+1HUy+CBTfcl1TT/gLpJjY17+0V7UrI3vfWYjJX3Y9mbqF8FeIjxSAtJK79a+MmQKdtoj9KRCHoR1DwYlyEVsyfsogdqDHD3SnAKSemln/0pKb6Rf0Kqb+lDjZ9AnxacBfIN/IxfpXoAFpk44QZ0V+iprHRXuJuOMDkD5iz7+c9pfFKZGMKu74AKSb3OVflFUb7SHfVR57TC30mW9ySlR+iTs+ACmmZvIv08TjwlJ72k/xbbTY0+4+1aFqtECXMN2yb3zKJbQfEQBpJfbvHzOKktRdtZF4lm8cLZR5br8W0RSWbnHHByAfiDH/ElMJ6apEE9kP+SYjlhOJ8bW7dmuYNOR7y8T4lggA5Bs5yr8kgqZIpslv70a8NN1f3Il2RWpNRPEXMb7vyAHIE2J8/55dgO4vSxplms9B/aU1AtERFGNqT7FfIkR84lEAUk/NvP/lO/EoM78g4Hq2KAjiKepIxA5SnU4u4wOQYpL1/aPawTSftS2WXW1A38GoEezjkc71tUmW8S1HAcgHkph/Eb2jNtp3TY2mbpJ9RL/45jtS58jjm8ICkFfEm3+ZJnA2WYnU0449uO9g7CPxNYtaiSS+/ZDUTfs5BG0HIJnEm3+ZJjB9ZqrTKcvZFc5f2hsxzX9tB5MvAsW3XNfUE/4CKSb2978YRAepEz6QbijE5C/iUE2Co/uLLjUAUk/s739JZKxLQryinc9SBDrS6fT+0mj5UctdaO/I3oEeP9CdApB6Yn//S0V7yN4/wlka9HRTf0qcbPqEuE34C+QbNfP9owVt0hHirMhPySh5XLSXiDs+AOmjZt7/spAof1mcEsmo4o4PQLrJXf5FWbXRHvJ9frTH1EKf+SanROWXuOMDkGKS9f49F5ba036Kb6PFnnb3qQ5VowW6hOmWfeNTLqH9iABIK7F//5hRlKTuqo3Es3zjaKHMc/u1iKawdIs7PgD5QOzvf1mSDnuL7yHfZMRyIjG+dtduDZOGfG+ZGN8SAYB8I0f5l0TQFMk0+e3diJem+4s70a5IrYko/iLG9x05AHlC7O9/0f1lSaNM8zmov7RGIDqCYkztKfZLhIhPPApA6qmZ9798Jx5l5hcEXM8WBUE8RR2J2EGq08llfABSTLK+f1Q7mOaztsWyqw3oOxg1gn080rm+NskyvuUoAPlAEvMvonfURvuuqdHUTbKP6BfffEfqHHl8U1gA8op48y/TBM4mK5F62rEH9x2MfSS+ZlErkcS3H5K6aT+HoO0AJJN48y/TBKbPTHU6ZTm7wvlLeyOm+a/tYPJFoPiW65p6wl8gxcT+/heD6CB1wgfSDYWY/EUcqklwdH/RpQZA6on9/S+JjHVJiFe081mKQEc6nd5fGi0/arkL7R3ZO9DjB7pTAFJP7O9/qWgP2ftHOEuDnm7qT4mTTZ8Qtwl/gXwj9u8fAQAgJmJ//wsAAGIC+RcAwFWQfwEAXAX5FwDAVZB/AQBcBfkXAMBVkH8BAFwF+RcAwFWQfwEAXAX5FwDAVZB/AQBcJa78C/9BAgAgbuLKv+AvAEDcIP8CALgK8i8AgKvg+0cAgKvg+0cAgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuAryLwCAqyD/AgC4CvIvAICrIP8CALgK8i8AgKsg/wIAuApzDrEUFhbCXwCApMDMQ4F5Cf4CACQF0Tz2An8BAJIF/AUAcBX4CwDgKvAXAMBVRPOYOsBfAIAkIuVf6lH4CwCQUNTnR/EQ/AUASC7a9a8C3Xut8BcAIFlg/R4A4CrwFwDAVeAvAICrwF8AAFdhwiECfwEAEkRhQKj+omR0vATtj4JCL+x3tDzsf3SHbS63QX+yIX4fqP7yaATtDwAd6akBWye2gX6yMfqLEi5ofxQUeuG/o+UJmJbY+m7FCuUnG+JXAv5CcaYg/3J0S//JBi1Z+auA8HdJKChRFeRfbm3FCiuqMcSfbKBfBulCgf3FvjIwjQP+Qom8IP9ydMuLVhrlwf3leV5RUZEYP5i/+Fee9t8wFJQIC/Ivt7ZihRVfb1AKk1d4f4mvbJjGAX+hRF6Qfzm65cWkDrq/RHmJ8ZF/oSS9IP9yaytWWMky//KUzCukv8qx/oWS84L8y9EtL9msf0nyymr9i4/G/huGghJhQf7l1lassBL6+0dVXhH4yzIO+Asl8oL8y9Et/SerLSZ5ifHhL5SkF+Rfbm3FCuUnqz1kkpd0IfgLJekF+ZejW/pPVioWeQV7fiwiE7Q/AHSQfzm0DeENuryK6P4CIDnU+LTElrgN8ZMNJC+Sv8oJ6R8KCgpK7ouPvzwAAEgwNn+hoKCgJL/AXygoKK6WE/wV/vshAACoCY77K6KviQAAIKd4nldQg0txAACQDf8PCSzMQwjh6gUAAAAASUVORK5CYII=" alt="" />

eg2:

说明:将方法排入队列以便执行,WaitCallback,表示要执行的方法。如果将方法成功排入队列,则为 true;否则为 false

示例:addtest方法需要比较长的时间来响应,因此在button1_Click被点击以后,程序会失去响应,使用ThreadPool.QueueUserWorkItem 后,页面会继续响应其他时间,等addtest执行结束后,响应结果。

<Window x:Class="WpfAppThread.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Button Height="23" HorizontalAlignment="Left" Margin="9,23,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click">ButtonOne</Button>
        <Button Height="23" Margin="102,23,101,0" Name="button2" VerticalAlignment="Top" Click="button2_Click">ButtonTwo</Button>
    </Grid>
</Window>
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            ThreadPool.QueueUserWorkItem(new WaitCallback(addtest),"Testaa"); 
            //addtest();
        }

private void addtest(object aa)
        {
            long result=0;
            for (int i = 0; i < 1000000000; i++)
            {
                result += i;
            }
            MessageBox.Show(result.ToString()+aa.ToString());
            
        }

private void button2_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("two");
        }

多线程系列 线程池ThreadPool的更多相关文章

  1. Java多线程系列——线程池简介

    什么是线程池? 为了避免系统频繁地创建和销毁线程,我们可以让创建的线程进行复用.用线程时从线程池中获取,用完以后不销毁线程,而是归还给线程池. JDK 对线程池的支持 为了更好的控制多线程,JDK 提 ...

  2. Java多线程系列——线程池原理之 ThreadPoolExecutor

    ThreadPoolExecutor 简介 ThreadPoolExecutor 是线程池类. 通俗的讲,它是一个存放一定数量线程的线程集合.线程池允许多个线程同时运行,同时运行的线程数量就是这个线程 ...

  3. 多线程系列(2)线程池ThreadPool

    上一篇文章我们总结了多线程最基础的知识点Thread,我们知道了如何开启一个新的异步线程去做一些事情.可是当我们要开启很多线程的时候,如果仍然使用Thread我们需要去管理每一个线程的启动,挂起和终止 ...

  4. C#多线程学习 之 线程池[ThreadPool](转)

    在多线程的程序中,经常会出现两种情况: 一种情况:   应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应                   这一般使用ThreadPo ...

  5. C# -- 使用线程池 ThreadPool 执行多线程任务

    C# -- 使用线程池 ThreadPool 执行多线程任务 1. 使用线程池 class Program { static void Main(string[] args) { WaitCallba ...

  6. C#多线程学习 之 线程池[ThreadPool]

    在多线程的程序中,经常会出现两种情况: 一种情况:   应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应                   这一般使用ThreadPo ...

  7. [转]C#多线程学习 之 线程池[ThreadPool]

    在多线程的程序中,经常会出现两种情况: 一种情况:   应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应                   这一般使用ThreadPo ...

  8. python中多进程multiprocessing、多线程threading、线程池threadpool

    浅显点理解:进程就是一个程序,里面的线程就是用来干活的,,,进程大,线程小 一.多线程threading 简单的单线程和多线程运行:一个参数时,后面要加逗号 步骤:for循环,相当于多个线程——t=t ...

  9. 多线程Thread,线程池ThreadPool

    首先我们先增加一个公用方法DoSomethingLong(string name),这个方法下面的举例中都有可能用到 #region Private Method /// <summary> ...

随机推荐

  1. cameralink---格式 概要清晰理解

    DS90CR288 和DS90CR286共同组成LVDS收发对, LVDS: 4对数据+1对时钟 TTL: 时钟线1:clk 并行总线共27根: 同步线2:一根场同步,一根行同步 空闲: 1 数据线2 ...

  2. 线程同步 Lock接口

    同步:★★★★★ 好处:解决了线程安全问题. 弊端:相对降低性能,因为判断锁需要消耗资源,产生了死锁. 定义同步是有前提的: 1,必须要有两个或者两个以上的线程,才需要同步. 2,多个线程必须保证使用 ...

  3. [shell实例]——用脚本实现向多台服务器批量复制文件(nmap、scp)

    练习环境: (1)所有服务器将防火墙和selinux关闭 (2)所有服务器的root密码设置为aixocm (3)所有服务器都为10.0.100.*网段,并保证能够和其它主机通信 (4)所有服务器确保 ...

  4. 思维认知-读mindhacks杂记

    1. 导语 无意中浏览知乎,搜索到了mindhacks.cn这个个人geek的网址.mindhacks博主本人是牛人程序员一枚,但他的博客主题涵盖的主要内容确是思维改变生活. 博客链接地址:http: ...

  5. 【每日scrum】NO.5

    尝试采用自己的地图,绘点并计算路径,但是地图打开出现问题.

  6. <梦断代码>读后感2

    <梦断代码>这本书读了一半,我的心情久久不能平静. 为什么好软件如此难做?这是我本人,我想也是很多人都在苦苦思索的一个问题,虽然没有人能有完全确定的答案,但通过书中的记述,和个人思考,还是 ...

  7. 从一个Activity返回上一个Activity

    从一个Activity返回上一个Activity 要求:保留上一个Activity的数据 方法: 第一步:从Activity1转向Activity2时,用startActivityForResult而 ...

  8. 搭建SpringMVC+MyBatis开发框架五

    建立web结构 1.在webapp目录下新建css.img和js文件夹,删除默认的index.jsp文件:  2.在WEB-INF文件夹下建立一个page文件夹,然后在page下新建一个index. ...

  9. ubuntu(Eclipse+JDK) 自动安装脚本

    sudo rm -rf jdk1.8.0_40sudo rm -rf /usr/lib/jvm sudo tar -zxvf jdk-8u40-linux-i586.tar.gzsudo mkdir ...

  10. 百分比布局实现响应式布局在 IE6 中填坑思路

    最近接了个政府项目,政府项目要求响应式,并且兼容IE6,不想用媒体监测的方法,于是用了百分比布局的方法,但是IE6真是名不虚传,做第一个界面就遇到了个bug ①两张宽度各占50%的图片无法在同一横排, ...