当前位置 : 主页 > 编程语言 > java >

多线程--起点

来源:互联网 收集:自由互联 发布时间:2022-09-02
首先给出多线程的定义(百度给的定义): 在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是


首先给出多线程的定义(百度给的定义):

在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。

多线程可以更加充分的利用CPU的资源,在相对较短的时间,完成大量的任务。

最近,因为项目中,要抓取网页的数据放在数据库中,大家都知道,网页上的一个节点下的链接已经很多了,如果是抓取整个页面的话,只有一个线程是远远不够的。因此,我学习了一点多线程的知识。

这是写的再基本不错的多线程了。

这个程序的意思是,首先捕获本机的线程的个数,然后开启一个新的线程,然后再次捕获线程的个数,与原先的线程数进行比较,看看是否加一。 就是这么简单。

程序开始:

Console.WriteLine(Process.GetCurrentProcess().Threads.Count);
//输入参数为空,其实类型可以不写,因为lambda表达式可以从上下文中读出参数的类型
//=>指向的是要执行的表达式或者语句块。
//lambda表达式是随着.net3.0出来的产品,和linq可以配合的很好。
Thread t1 = new Thread(() =>
{
Thread.Sleep(1000);
Thread t = Thread.CurrentThread;
Console.WriteLine("Name: " + t.Name);
Console.WriteLine("ManagedThreadId: " + t.ManagedThreadId);
Console.WriteLine("State: " + t.ThreadState);
Console.WriteLine("Priority: " + t.Priority);
Console.WriteLine("IsBackground: " + t.IsBackground);
Console.WriteLine("IsThreadPoolThread: " + t.IsThreadPoolThread);
})
{
Name = "Thread1",
Priority = ThreadPriority.Highest,
};
t1.Start();
Console.WriteLine(Process.GetCurrentProcess().Threads.Count);
Console.ReadKey();

对了命名空间如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading; //这是多线程的类库
using System.Collections;
using System.Diagnostics; //这是进程类的类库
上一篇:C# 捕获窗体最大化和最小化事件
下一篇:没有了
网友评论