线程通讯 网络编程

发布时间 2023-12-26 21:17:01作者: Cyptals

//线程的休眠 try { Thread.sleep(3000);// 毫秒 } catch (InterruptedException e) { e.printStackTrace(); } // 第二种方式 : try { TimeUnit.MINUTES.sleep(3); } catch (InterruptedException e) { e.printStackTrace(); }

 

联合/插队 : join() Thread thread = new Thread(new Runnable() { @Override public void run() { for (int i = 0; i < 150; i++) { System.out.println(Thread.currentThread().getName() + " :: " + i); } } });

 

同步代码块 : synchronized (锁) { 需要被同步的代码; }

锁对象 : 所有线程看到的是同一个对象才会生效 1.字符串/String : 不推荐使用 2.当前类的字节码文件 3.this

 

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

锁对象 : 普通函数的锁对象是 this 静态函数的锁对象是当前类的字节码文件

 

死锁 : A 线程已经 占用 了 x 资源 , 需要 y资源才能继续执行 , 此时 , B线程 占有 y资源 ,需要 x资源才能继续执行

 

InetAddress : 此类表示互联网协议 (IP) 地址。 static InetAddress getLocalHost() 返回本地主机。 UnknownHostException

 

// 1.创建服务器对象 ServerSocket serverSocket = new ServerSocket(8888); // 2.开启侦听功能,等待客户端连接 System.out.println("服务器已启动,等待客户端链接......"); Socket socket = serverSocket.accept(); // 3.获取输入流,读取客户端发送过来的信息 InputStream inputStream = socket.getInputStream(); // 包装为字符缓冲流 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

String info = bufferedReader.readLine(); System.out.println("我是服务端 , 客户端跟我说 : " + info); // 4.资源释放 bufferedReader.close(); inputStream.close(); socket.close(); serverSocket.close();