十八,JAVA 多线程,网络编程

发布时间 2023-12-26 17:09:45作者: とんぽ
  • 线程的休眠

    • //线程的休眠
      try {    
         Thread.sleep(3000);// 毫秒
        } catch (InterruptedException e) {   e.printStackTrace();
      }
      // 第二种方式 :
      try {    
         TimeUnit.MINUTES.sleep(3);
      } catch (InterruptedException e) {   e.printStackTrace();
      }
  • 联合/插队 : join(),thread.join(0, 5);

  • 线程的礼让,Thread.yield();

  • 同步代码块 :synchronized 返回值类型 函数名(){}

    • synchronized (锁) {
        需要被同步的代码;
      }
  • 锁对象 : 所有线程看到的是同一个对象才会生效

    • 字符串/String : 不推荐使用

    • 当前类的字节码文件

    • this

  • synchronized (this) {
       if (tickets.size() > 0) {        
           Ticket ticket = tickets.remove(0);  
    System.out.println(Thread.currentThread().getName() + " 卖出了一张票 , 票号为 : " +ticket.getId());    
      }
    }
  • 死锁 :A 线程已经 占用 了 x 资源 , 需要 y资源才能继续执行 , 此时 , B线程 占有 y资源 ,需要 x资源才能继续执行

网络编程

  • 网络编程的目的:就是指直接或间接地通过网络协议与其他计算机进行通讯,把世界是虚拟地址绑定到一个网组里面,从而实现网络端的通信,网络主要的目的体现在资源共享上面。

  • Java提供的网络功能有四大类

    • URL:统一资源定位器

    • InetAddress:主机地址

    • Socket:套接字

    • Datagram:数据包

  • URL

    • URL是统一资源定位器(Uniform Resource Locator)的简称,它表示Internet上某一资源的地址。Internet上的资源包括HTML文件、图像文件、声音文件、动画文件以及其他任何内容

    • 格式:<传输协议>://<主机名>:<端口号>/<文件名>#<引用>

    • 例如:http://java.sun.com/index.html#chapter1

  • InetAddress

    • nternet上的主机有两种表示地址的方式:域名和IP地址,有时候需要通过域名来查找它对应的IP地址,有时候又需要通过IP地址来查找主机名。这时候可以利用java.net包中的InetAddress类来完成任务。

  • 基于TCP的socket编程

    • Socket通信属于网络底层通信,它是网络上运行的两个程序间双向通信的一端,它既可以接受请求,也可以发送请求,利用它可以较方便地进行网络上的数据传输

    • Socket通信机制的基本概念

      • 建立连接

      • 连接地址

      • TCP/IP Socket通信

  • Socket类与ServerSocket类

    • Socket类:Socket类用在客户端,用户通过创建一个Socket对象来建立与服务器的连接

    • ServerSocket:在Socket编程中,服务器端使用ServerSocket类

  • UDP服务器端编程

    • 无连接协议

    • 不保证消息的可靠传输

    • 它们由Java技术中的DatagramSocket和DatagramPacket类支持