8.21笔记

复习{
  多线程: 
    1.线程之间的通讯案例   synchronized
         Object类: 
             wait(); 等待   进入等待池
             notify(); 唤醒  线程 锁池 (在锁池中要抢占锁标记)
             notifyAll(); 唤醒所有 线程
         
         生产者 与 消费者模式:
             Cooker: Shop 属性
             Saler:  Saler 属性
             Shop: 商店中 有两个方法 make , sale 
                       都是同步方法
             
             必须通过唤醒 和 等待操作
     
     wait 和 sleep 的区别: 
         1.wait 方法是Object 类的, sleep 方法是Thread类的
         2.wait方法必须在同步方法中, sleep 方法不用在同步方法中
         3.wait必须用notify 唤醒, sleep方法不用,时间片用完,自动唤醒
         4.wait方法要让线程进入 等待池 ,sleep方法会让线程进入阻塞状态    
             
    2.实现Callable接口    是  java.util.concurrent.*;   juc 并发包
         pubilc class Apple implemnts Callable<V>{
              @Override
              public V call()throws Exception{
                  
              }
         }
        
        在测试类中 必须使用FutrueTask辅助类 来启动线程
        
         Apple apple = new Apple();
         
         FutrueTask t1 = new FutrueTask(apple);
         FutrueTask t2 = new FutrueTask(apple);
    
         Thread d1 = new Thread(t1);
         Thread d2 = new Thread(t2);
         
         d1.start();
         d2.start();
         
         t1.get(); 可以获取call方法的返回值
    
    3.Lock锁     java.util.concurrent.locks.*;  
         |-- ReetrantLock

         synchronized 和 Lock 锁都是用来做线程同步的
           lock 锁 是 lock();  unlock(); 必须手动释放锁
           synchronized 是关键字 偏于底层  jvm虚拟机自动释放锁}
==============================================================================
网络编程:
    什么是网络?
         网络是将 分散在不同位置的网络终端,通过网络介质
         连接起来,从而达到 数据传输  和 通讯的 目的; 
    
     网络介质: WIFI , 卫星信号, 有线网络

网络编程 是 使用网络的 技术 编写 程序, 从而完成我们所需要的功能
 
   学习下网络编程基础知识: 
     1.IP 是互联网协议地址  (Internet Protocol Address)
          IP地址 是ip协议提供的一种 统一的 地址格式
          作用就是用来 在网络中  准确的 定位一台  PC 
          
         当你建立一个网络的时候,互联网会给每一个主机分配一个地址
         逻辑地址, 屏蔽 物理地址;
         
         IP地址是一个 32位的  二进制数,一般情况下被分割为4个 8位的二进制数(4个字节)
         但是一般情况下 会 以10进制的形式 标识 (a.b.c.d)的需变更事故
         0.0.0.0  最小值
         255.255.255.255  最大值
         
         (01100100.0000010.00000101.00000110)
         
         一个局域网内 最多 连接253台电脑,如果电脑数在多那么就需要做虚拟ip
         Linux操作系统时, 需要NAT 连接

      2.端口号: port 用来确定一台终端上的程序
          在程序相互对接时,需要使用端口号进行连接
          0-65535      0-1023 是官方占用

     3.协议: protocol 传输数据的
            TCP/IP  传输控制协议 Transmission Control Protocol  
            UDP   用户数据报协议      User Datagram Protocol
            Http: 超文本传输协议  Hyper text Transfer protocol    浏览器访问
             Https: security 安全的 花钱的
           
 IP地址 ,port端口号, protocol 协议
 
java中如何处理网络编程?
     java中提供了两个类 
       Tcp/IP协议: 必须是有连接的,安全,性能慢
          Socket : 客户端
          ServerSocket : 服务器
     TCP/IP协议的三次握手 和  四次挥手
       三次握手:
       1) TCP客户端 向 服务器发送请求
       2) 服务器接收到请求,返回连接TCP客户端
       3) TCP客户端 建立连接
       
         四次挥手:
          1)Tcp客户端发送关闭请求,到服务器     
          2)服务器接收到请求后,返回信息,给客户端确认关系
          3)服务器关闭连接,
          4)客户端发送回执 信息 给服务器  

  ServerSocket: 
       new ServerSocket();

     方法: 
         accept();
         close();

  Socket: 
       new Socket(InetAddress address, int port);
       
       close(); 关闭资源
       getInputStream(); 获取 字节输入流
     getOutputStream(); 获取字节输出流
-------------------------------------------------------------------------------------------     
UDP:
   User Datagram Protocol 用户数据报协议
   
   特点: 无连接, 不安全, 性能快
   
   两个类
     DatagramSocket    :及当客户端 , 服务器 
          接收信息, 发送信息
          发送包   最大 64k
          
         receive(DatagramPacket p);
         send(DatagramPacket p);
         
         以上两个方法的入参都是  DatagramPacket
          
     DatagramPacket: 包
           new DatagramPacket(bytes, bytes.length,InetAddress.getLocalHost(),9999);
         new DatagramPacket(b, 100);
          
     
         geData(); 获取字节数组数据

-------------------------------------------------------------------------------------------
     网络编程  , 多线程, IO流编写综合案例
     
         总复习     
     
     
     
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值