《多线程与网络编程》

day19

课程

part1.多线程

线程

  • 1.进程是资源分配的最小单位,线程是处理器调度的最小单位
  • 2.当一个类要实现线程,则必须继承Thread类或者Runable接口
  • 3.必须重写父类的run方法,run方法的头部是:public void run()
  • 4.通过start方法启动线程,启动以后系统会自动调用run方法
  • 5.Thread类中有用于启动线程的start方法,而Runable中没有
  • 6.当一个类实现了Runable接口,从而实现线程以后,可以通过如下方法启动线程:
  •       My my=new My();
       //创建Thread对象
      Thread thread=new Thread(my);
      //启动线程
     thread.start();
    
1.
try {
  Thread.sleep(1000);
  System.out.println("你好");
 } catch (Exception e) {
  // TODO 自动生成的 catch 块
  e.printStackTrace();
 }

如果一个类继承了Thread类,那么就可以直接使用类名调用静态方法sleep(),用来使进程在一定的时间内休眠

MyTread thread=new MyTread();
 //启动线程
 thread.start();

在启动进程时应创建新对象,并调用start()方法,而不是run()方法

2.
try {
   Thread.sleep(2000);
   System.out.println("成功了");
  } catch (InterruptedException e) {
   e.printStackTrace();
  }

这里展示的时实现了Runable接口的类

My my=new My();
 //创建Thread对象
 Thread thread=new Thread(my);
 //启动线程
 thread.start();

在创建对象时应该使用多态的方法创建对象,并用Thread类对象调用start()方法

part2.网络编程

//创建客户端的Socket对象
   Socket socket=new Socket("192.168.11.181",5000);

首先创建客户端的Socket对象,这里使用的ip地址是本机的

OutputStream outputStream=socket.getOutputStream();
   String resString="我是客户端,你好服务器";
   byte c[]=resString.getBytes();
   outputStream.write(c);

通过套接字获取输出流,再通过输出流输出

socket.shutdownOutput();

如果想再次使用5000接口,需要关闭输出流

InputStream inputStream=socket.getInputStream();
   InputStreamReader reader=new InputStreamReader(inputStream);
   int date=0;
   while((date=reader.read())!=-1){
    System.out.print((char)date);
   }

通过输入流接收数据并打印

reader.close();
inputStream.close();
outputStream.close();
socket.close();

最后别忘了依次关闭资源

//创建服务器端的ServerSocket套接字,注意端口要和客户端端口号一致
  ServerSocket serverSocket=new ServerSocket(5000);

在服务器端需要先创建ServerSocket套接字

Socket socket=serverSocket.accept();

再调用accept()方法用于监听服务器端接收的请求,返回值为Socket对象

InputStream inputStream=socket.getInputStream();
InputStreamReader reader=new InputStreamReader(inputStream);
  int date=0;
  while((date=reader.read())!=-1){
   System.out.print((char)date);
  }

这里为服务器端接收到客户端的信息并打印出来

OutputStream outputStream=socket.getOutputStream();
  String kkString="我是服务器,你好客户端";
  byte b[]=kkString.getBytes();
  outputStream.write(b);

服务器端再返回一句话给客户端

socket.shutdownOutput();
  
  outputStream.close();
  reader.close();
  inputStream.close();
  socket.close();
  serverSocket.close();

最后别忘了关闭输出流并关闭资源

总结:

今天学的知识很少,应该掌握好多线程的使用以达到增加编程效率的作用,网络编程使用较少,适当学习即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值