复习{
多线程:
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流编写综合案例
总复习