为了转行程序员而努力的第三十四天-线程

      最后更新:2022-01-29 08:20

      今天因为工作上的事情耽误了一些时间,晚上又和父母聊了很久,没有时间写太多,大概记录了学习的几点线程的笔记。
      学习笔记:
      1.java.net包中提供了两种常见的网络协议的支持:
      TCP:TCP是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称TCP / IP。
      UDP:UDP是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。

      2.当连接建立时,服务器会创建一个Socket对象。客户端和服务器现在可以通过对Socket对象的写入和读取来进行通信。以下步骤在两台计算机之间使用套接字建立TCP连接时会出现:

      服务器实例化一个ServerSocket对象,表示通过服务器上的端口通信。
      服务器调用 ServerSocket类 的accept()方法,该方法将一直等待,直到客户端连接到服务器上给定的端口。
      服务器正在等待时,一个客户端实例化一个Socket对象,指定服务器名称和端口号来请求连接。
      Socket类的构造函数试图将客户端连接到指定的服务器和端口号。如果通信被建立,则在客户端创建一个Socket对象能够与服务器进行通信。
      在服务器端,accept()方法返回服务器上一个新的socket引用,该socket连接到客户端的socket。

      3.Java 给多线程编程提供了内置的支持。一个多线程程序包含两个或多个能并发运行的部分。程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径。
      多线程是多任务的一种特别的形式。多线程比多任务需要更小的开销。
      这里定义和线程相关的另一个术语:进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守候线程都结束运行后才能结束。多线程能满足程序员编写非常有效率的程序来达到充分利用 CPU 的目的,因为 CPU 的空闲时间能够保持在最低限度。

      4.线程经过其生命周期的各个阶段。新建(new Thread)
      当创建Thread类的一个实例(对象)时,此线程进入新建状态(未被启动)。
      例如:Thread t1=new Thread();
      就绪(runnable)
      线程已经被启动,正在等待被分配给 CPU 时间片,也就是说此时线程正在就绪队列中排队等候得到 CPU 资源。
      例如:t1.start();
      运行(running)
      线程获得 CPU 资源正在执行任务( run() 方法),此时除非此线程自动放弃 CPU 资源或者有优先级更高的线程进入,线程将一直运行到结束。
      堵塞(blocked)由于某种原因导致正在运行的线程让出CPU并暂停自己的执行,即进入堵塞状态。
      正在睡眠:用 sleep(long t) 方法可使线程进入睡眠方式。一个睡眠着的线程在指定的时间过去可进入就绪状态。
      正在等待:调用 wait() 方法。(调用 motify() 方法回到就绪状态)
      被另一个线程所阻塞:调用 suspend() 方法。(调用 resume() 方法恢复)
      死亡(dead)当线程执行完毕或被其它线程杀死,线程就进入死亡状态,这时线程不可能再进入就绪状态等待执行。
      自然终止:正常运行 run() 方法后终止
      异常终止:调用 stop() 方法让一个线程终止运行

      昨天的hard题做了一半,明天接着做

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类