Java学习(十)之网络与线程

一、网络编程: Socket

  1. 步骤: 建立Socket对象连接服务器端口号,Socket socket = new Socket(“127.0.0.1”,5555);获得输入输出流, PrintWriter writer = new PrintWriter(socket.getOutputStream());读写,writer.println();

二、多线程

  1. 多线程实现方法: 抽象的说,thread是一个工人,而runnable是工作的内容
    a. 建立Runnable对象,代表新线程的任务;
    b. 建立Thread对象并赋值Runnable任务;
    c. 启动Thread。

  2. Java线程中的五种状态
    a. new状态:新建状态 new thread();
    b.runnable状态: 可执行状态 thread.start();
    c. running状态:执行中状态;
    d. dead状态: 执行完状态;
    e. locked状态:堵塞状态,调度其他线程中.

  3. 线程并发性问题
    a. 原因:两个或两个以上的线程存取单一对象的数据;
    b. 解决方法:synchronized 同步化方法;
    c. 同步化带来的问题:死锁问题;

  4. synchronized同步化说明
    a. 原理:设置对象锁,只有拿到钥匙的线程才能运行其方法;
    b. synchronized关键字格式: public synchronized void go(){…};
    c. 对象就算有多个同步化方法,也还是只有一个锁,也就是一旦某个进程进入该对象的同步化方法,其他进程就无法进入该对象上的任何同步化进程;

  5. 死锁问题说明
    原理:二者或二者以上互相持有己方的对象锁而需要进入对方的同步化方法,导致无限等待。比如,a进入对象A的同步化方法,持有A的对象锁;b进入对象B的同步化方法,持有B的对象锁;接下来a在对象A中的同步化方法中要进入对象B的同步化方法,等待b完成,b在对象B的同步化方法中要进入对象A的同步化方法,等待a完成,二者无限等待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值