• 线程同步、网络部分


    //博主,太懒了,并没有提供范例程序

     

    7、线程同步

    (1)概念:线程同步要求同一时间,只能有一个线程访问该代码。

    (2)实现方式:

    <1>同步代码块:synchronized(同步对象){}

    <2>同步方法:public synchronized 返回值类型 方法名(){}

    8、线程通信:

    (1)概念:指线程之间进行信息的交互

    (2)常用方法:

    <1>wait(): 将线程进入等待状态

    <2>notify(): 唤醒因 wait()方法而暂停的线程,随机唤醒一个

    <3>notifyAll(): 唤醒等待线程

    注:三个方法要定义在同步方法或同步代码块中

     

    1、网络命令:

    1ipconfig 获取IP地址

    2)测试网络是否联通:ping ip地址

    自己地址测试:ping 127.0.0.1

    网络机测试: ping 对方IP地址

    2、socket(“套接字”):用于进行数据的网络传输

    工作原理:

    发送方:<1>创建socket<2>将发送的数据给socket

    接收方:<1>创建socket<2>随时等待接收数据

    TCP:用来实现双向安全连接网络通信

    3、实现步骤:

    (1)客户端:

    <1>创建socket对象,指定服务器地址和端口号

    Socket s = new Scoket("服务器地址",端口号);

    <2>通过socket获取输入输出流

    OutputStream out= s.getOutputStream();

    InputStream is = s.getInputStream();

    <3>如果获取的是字符串,需要进行字符转换

    InputStreamReader isr = new InputStreamReader(is);

    BufferedReader br = new BufferedReader(isr);

    <4>关流

    逆序关闭

    (2)服务器端:

    <1>创建ServerSocket,只指定端口号

    ServerSocket server= new ServerSocket(端口号);

    <2>获取Socket,接收数据

    Socket s = server.accept();

    <3>获取输入输出流

    <4>关闭流(逆序)

     

    4、Socket传递对象

    注意事项:

    (1)创建的实体类要实现Serializable接口

    (2)传递对象时使用的类不同

    发送对象:

    OutputStream os=socket.getOutputStream();

    ObjectOutputStream oos = new ObjectOutputStream(os);

    oos.writeObject(对象名);

    接收对象

    InputStream is=socket.getInputStream();

    ObjectInputStream ois = new ObjectInputStream(is);

    ois.readObject();//读取对象进行强转

    3)关流

  • 相关阅读:
    Redis 中如何保证数据的不丢失,Redis 中的持久化是如何进行的
    Redis 中的 set 和 sorted set 如何使用,源码实现分析
    Redis 中使用 list,streams,pub/sub 几种方式实现消息队列
    Redis 中 String 类型的内存开销比较大
    为什么 Redis 的查询很快, Redis 如何保证查询的高效
    Redis 中常见的集群部署方案
    2021 年终总结
    linux挂载大于2T的移动硬盘
    maven编译报错
    Docker命令详解
  • 原文地址:https://www.cnblogs.com/letben/p/5185480.html
Copyright © 2020-2023  润新知