线程 的 学习

    线程是一个可以独立执行的执行路径。 每一个线程都运行在一个操作系统进程中。这个进程提供了程序执行的独立环境。 在单线程程序中,进程中只有一个线程运行,因此线程可以独立使用进程环境。而在多线程程序中,一个进程中会运行多个线程。它们共享同一个执行环境(特别是内存)。这在一定程度上说明了多线程的作用。例如,可以使用一个线程在后台获得数据,同时使用另一个线程显示所获得的数据。而这些数据就是所谓的状态。

前台线程与后台线程

一般情况下,显式创建的线程称为前台线程。只要有一个前台线程还在运行,应用程序就仍然保持运行状态。而后台线程则不然。当所有前台线程结束时,应用程序就会停止,且所有运行的后台线程也会随之终止。

在C#中,可以使用System.Threading命名空间下的Thread类来创建和控制线程。以下是一些常用的线程操作方法和示例代码:

1.创建并启动线程:

Thread thread = new Thread(new ThreadStart(WorkMethod));
thread.Start();
void WorkMethod()
{
    // 线程执行的代码
}

2.使用参数创建线程:

int threadParameter = 10;
Thread threadWithParameter = new Thread(new ParameterizedThreadStart(WorkMethodWithParameter));
threadWithParameter.Start(threadParameter);
 
void WorkMethodWithParameter(object parameter)
{
    int param = (int)parameter;
    // 线程执行的代码,使用参数param
}

3.线程睡眠(Sleep):

Thread.Sleep(1000); // 线程休眠1000毫秒

4.设置线程优先级:

thread.Priority = ThreadPriority.AboveNormal; // 设置线程优先级

5.线程中的异常处理:

thread.IsBackground = true; // 设置为后台线程,可以捕获未处理的异常
thread.SetApartmentState(ApartmentState.STA); // 设置单线程单元状态(根据需要)
thread.Start();

6.线程同步:

lock (lockObject)
{
    // 访问共享资源的代码
}

7.使用线程池:

ThreadPool.QueueUserWorkItem(new WaitCallback(WorkMethod), threadParameter);

8.等待线程结束:

thread.Join(); // 阻塞调用线程直到thread完成执行

Thread thread01 = new Thread(XXX);
thread01.Name = "偶数";
thread01.Start();

ThreadPool.QueueUserWorkItem(XXX); //线程池

public void XXX(object obj)
{
    
}

    Socket

    Socket被称为“套接字”,抽象化为类,程序设计者只需要创建Socket类对象,即可使用套接字。简单的说就像一个插座,连接应用层与运输层,并不需要理解是如何实现的,相当于在TCP/IP协议基础上封装起来,客户端与服务端通过插座作为中介用网线连接起来。在使用时我们只需要知道IP地址与端口号。

//得有手机(使用ivp4查找地址,使用字节流传输数据,使用Tcp协议传输)
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//创建手机卡(默认IP地址,自定义端口号)
IPEndPoint ip=new IPEndPoint(IPAddress.Any, 1025);
//绑定手机号
socket.Bind(ip);
//设定接听上线
socket.Listen(10);
//等待别人打电话
Socket client=socket.Accept();
//来电显示
IPEndPoint clientIP = client.RemoteEndPoint as IPEndPoint;
Console.WriteLine(clientIP.Address+":"+clientIP.Port+"链接");

点赞+关注 了解更多内容 下一章Socket...

  • 28
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不食卷心菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值