java TCP/IP应用开发详解多线程笔记

此书多线程讲解的比较简单,摘录其中的精要于此,算是见证我的成长足迹吧......

---------------------------------------------------------------------------

多线程网络编程

 

Java语言中,所有的线程必须拥有run方法,是线程的入口。

 

创建线程两个方法:

1、  扩展Thread类重写其中run方法

2、  实现Runable接口重写run方法

 

启动一个线程:start方法;

 

线程状态

多线程不独占cpu,分时轮询cpu资源,故有线程状态一说;

 

休眠

简单中断不杀死线程方法:sleep静态方法;可以调用另外一个静态方法interrupt唤醒这个线程,不是必须的,线程sleep特定时间会自动醒来;

 

WaitnotifynotifyAll

多线程交互信息,协调操作。自动化生产线:用户输入自己喜欢的布料形状、电脑转换图形为各种参数、机器得到参数并生产相应布料

 

在一个线程中完成=====低效!!!

Public void run()

{

   While(true)

{

    //从用户得到图形

    //将图形转化为参数

    //将参数传给机器

}

)

 

使用waitnotify:两个线程配合按照特定顺序执行,此二者是个不错的选择

Wait:静态方法,使当前线程处于等待状态,系统释放被锁定的资源;

Notify:解除wait挂起状态。

两个线程:默认对象是一个参数传递对象

Public void userLoop()  用户线程

{

   While(true)

{

  Synchronized(this)

{

//计算完毕所有从用户得到图形并将图形转化为标准参数

// 并确保传给了默认对象,解除生产的wait状态

Notify();

}

}

}

 

Public void hardwareLoop() 生产线程

{

  While()

{

   Synchronized(this)

{

      //等待用户计算参数完毕

      Wait();

      //生产

}

}

}

 

使用notifyAllwaitnotify适应于两个线程之间的协调,有时需要对所有等待的线程取消挂起,用到notifyAll。如生产者、消费者问题:书上此处好似有问题!

Public class MutipleWriters

{

   Private Object item

   Public synchronized void write(Object o) throws

   {

      //还没有消费完,等待

      While(item=null)

             Wait();

       Item=0;

       //通知任何一个消费者

       NotifyAll();

}

 

Public synchronized Object read(Object o) throws

   {

      //还没有消费完,等待

      While(item==null)

             Wait();

       Object  myItem=Item;

       Item=null;

       //消费完毕,要求通知所有的线程,确保write线程取消等待

       NotifyAll();

       Return myItem

    }

 

}

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值