C#.net同步异步SOCKET通讯和多线程总结(3)
线程休眠:Thread.Sleep(10000);
线程挂起:Thread thread=new Thread(new ThreadStart(accp));
Thread.start();
Thread.Suspend();
重新启动:Thread thread=new Thread(new ThreadStart(accp));
Thread.start();
Thread.Suspend();
Thread.Resume();
阻塞线程的方法:thread.Join使用一个线程等待另一个线程停止
Thread.Join
Public void Join();
Public void Join(int millisecondsTimeout);毫秒
Public bool Join(TimeSpan timeout);时间间隔类型值
实例:Thread thread=new Thread(new ThreadStart(accp));
Thread.start();
Thread.Join(10000);
线程销毁:
Thread.Abort,Thread.Interrupt
Abort方法引发ThreadAbortException,开始中止此线程的过程,是一个可以由应用程序代码捕获的特殊异常,ResetAbort可以取消Abort请求,可以组织ThreadAbortException终止此线程,线程不一定会立即终止,根本不终止。
对尚未启动的线程调用Abort,则当调用Start时该线程将终止。对已经挂起的线程调用Abort,则该线程将继续,然后终止。对阻塞或正在休眠的线程调用Abort,则该线程被中断,然后终止。
Thread类的Abort方法:
Public void Abort()
Public void Abort(object stateinfo);
演示:
Thread thread=new Thread(new ThreadStart(accp));
Thread.Start();
Thread.Abort();
Thread.Join(10000);
Socket编程原理:
Unix的i/o命令集,模式为开-读/写-关 open write/read close
用户进程进行i/o操作
用户进程调用打开命令,获取文件或设备的使用权,并返回描述文件或设备的整数,以描述用户打开的进程,该进程进行读写操作,传输数据,操作完成,进程关闭,通知os对哪个对象进行了使用。
Unix网络应用编程:BSD的套接字socket,unix的System V 的TLI。
套接字编程的基本概念:
网间进程通信:源于单机系统,每个进程在自己的地址范围内进行运行,保证互相不干扰且协调工作。操作系统为进程之间的通信提供设施:
Unix BSD 管道pipe,命名管道named pipe软中断信号signal
Unix System V 消息message 共享存储区 shared memory 信号量semaphore
以上仅限于本机进程之间通信。
端口:网络上可以被命名和寻址的通信端口,是操作系统可以分配的一种资源,网络通信的最终地址不是主机地址,是可以描述进程的摸中标识符。TCP/IP提出协议端口porotocol port端口,表示通信进程。
进程通过os调用绑定连接端口,而在传输层传输给该端口的数据传入进程中处理,同样在进程的数据需要传给传输层也是通过绑定端口实现。进程对端口的操作相当于对os中的i/o文件进行操作,每一个端口也对应着一个端口号,tcp/ip协议分为tcp和udp,虽然有相同port number的端口,但是互相也不冲突。 端口号的分配有全局分配,本地分配(动态分配),当进程需要访问传输层,os分配给进程一个端口号。全局分配,就是os固定分配的端口,标准的服务器都有固定的全局公认的端口号提供给服务。小于256的可以作为保留端口。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>