返回顶部
首页 > 资讯 > 精选 >java doc线程关键代码的编写是怎样的
  • 244
分享到

java doc线程关键代码的编写是怎样的

2023-06-17 15:06:17 244人浏览 泡泡鱼
摘要

这期内容当中小编将会给大家带来有关java doc线程关键代码的编写是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。java doc线程在使用的时候需要我们不断学习相关问题,下面我们就详细的看看如何

这期内容当中小编将会给大家带来有关java doc线程关键代码的编写是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

java doc线程在使用的时候需要我们不断学习相关问题,下面我们就详细的看看如何才能更好使用相关代码。wait(),notify(),notifyAll()不属于Thread类,而是属于Object基础类,也就是说每个对像都有wait(),notify(),notifyAll()的功能。

因为都个对像都有,锁是每个对像的基础,当然操作锁的方法也是最基础了.

先看java doc线程怎么说:

wait导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。当前的线程必须拥有此对象监视器。该线程发布对此监视器的所有权并等待,直到其他线程通过调用 notify 方法,或 notifyAll 方法通知在此对象的监视器上等待的线程醒来。然后该线程将等到重新获得对监视器的所有权后才能继续执行.

  • Java线程同步锁解决共享数据安全

  • Java线程死锁如何避免这一悲剧

  • Java线程模型如何完善相关的数据处理

  • Java线程同步如何才能排除阻塞

  • Java线程函数关键代码详细讲述

notify唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待,则会选择唤醒其中一个线程。直到当前的线程放弃此对象上的锁定,才能继续执行被唤醒的线程。此方法只应由作为此对象监视器的所有者的线程来调用.

"当前的线程必须拥有此对象监视器"与"此方法只应由作为此对象监视器的所有者的线程来调用"说明wait方法与notify方法必须在同步块内执行,即synchronized(obj之内).

调用对像wait方法后,当前线程释放对像锁,进入等待状态.直到其他线程(也只能是其他线程)通过notify 方法,或 notifyAll.该线程重新获得对像锁.继续执行,记得线程必须重新获得对像锁才能继续执行.因为synchronized代码块内没有锁是寸步不能走的.看一个很经典的例子:

Java代码

package ProductAndConsume;   import java.util.List;   public class Consume implements Runnable{   private List container = null;   private int count;   public Consume(List lst){   this.container = lst;   }   public void run() {   while(true){   synchronized (container) {   if(container.size()== 0){   try {   container.wait();//放弃锁   } catch (InterruptedException e) {   e.printStackTrace();   }   }   try {   Thread.sleep(100);   } catch (InterruptedException e) {   // TODO Auto-generated catch block   e.printStackTrace();   }   container.remove(0);   container.notify();   System.out.println("我吃了"+(++count)+"个");   }   }   }   }   package ProductAndConsume;   import java.util.List;   public class Product implements Runnable {   private List container = null;   private int count;   public Product(List lst) {   this.container = lst;   }    public void run() {   while (true) {   synchronized (container) {   if (container.size() > MultiThread.MAX) {   try {   container.wait();   } catch (InterruptedException e) {   e.printStackTrace();   }   }   try {   Thread.sleep(100);   } catch (InterruptedException e) {   e.printStackTrace();   }   container.add(new Object());   container.notify();   System.out.println("我生产了"+(++count)+"个");   }   }   }   }   package ProductAndConsume;   import java.util.ArrayList;   import java.util.List;   public class MultiThread {   private List container = new ArrayList();   public final static int MAX = 5;   public static void main(String args[]){   MultiThread m = new MultiThread();   new Thread(new Consume(m.getContainer())).start();   new Thread(new Product(m.getContainer())).start();   new Thread(new Consume(m.getContainer())).start();   new Thread(new Product(m.getContainer())).start();   }   public List getContainer() {   return container;   }   public void setContainer(List container) {   this.container = container;   }

上述就是小编为大家分享的java doc线程关键代码的编写是怎样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: java doc线程关键代码的编写是怎样的

本文链接: https://lsjlt.com/news/290422.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java doc线程关键代码的编写是怎样的
    这期内容当中小编将会给大家带来有关java doc线程关键代码的编写是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。java doc线程在使用的时候需要我们不断学习相关问题,下面我们就详细的看看如何...
    99+
    2023-06-17
  • Java Socket编程关键代码是什么
    本篇内容介绍了“Java Socket编程关键代码是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!package sterni...
    99+
    2023-06-17
  • 编写cmd界面下一键编译、执行java代码的bat脚本是怎样的
    编写cmd界面下一键编译、执行java代码的bat脚本是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。此脚本适合刚接触java的同学,在cmd界面下用jc...
    99+
    2023-06-02
  • java Socket多线程服务器源代码是怎样的
    今天就跟大家聊聊有关java Socket多线程服务器源代码是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。java Socket多线程需要我们不断的学习,在学习的时候我们就会...
    99+
    2023-06-17
  • java实现线程代码怎么写
    在Java中,可以使用以下两种方式实现线程: 继承Thread类 public class MyThread extends Th...
    99+
    2023-10-28
    java
  • java编码转换过程是怎样的
    本文小编为大家详细介绍“java编码转换过程是怎样的”,内容详细,步骤清晰,细节处理妥当,希望这篇“java编码转换过程是怎样的”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。java中的编码转换(以utf8和gb...
    99+
    2023-07-06
  • 如何编写高效的Java和JavaScript代码:关键字和学习笔记。
    如何编写高效的Java和JavaScript代码:关键字和学习笔记 Java和JavaScript是两种不同的编程语言,但它们都是广泛使用的高级编程语言。Java是一种面向对象的编程语言,用于构建企业级应用程序,而JavaScript则是一...
    99+
    2023-06-18
    javascript 关键字 学习笔记
  • Java线程状态是怎样的
    这篇文章主要介绍“Java线程状态是怎样的”,在日常操作中,相信很多人在Java线程状态是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java线程状态是怎样的”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-19
  • Java SocketAPI关键代码怎么写以及使用介绍
    Java SocketAPI关键代码怎么写以及使用介绍,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Java SocketAPI如何才能够正常的使用呢?这个问题就需要我们掌...
    99+
    2023-06-17
  • JVM是怎样运行Java代码的
    这篇文章主要介绍“JVM是怎样运行Java代码的”,在日常操作中,相信很多人在JVM是怎样运行Java代码的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JVM是怎样运行Java代码的”的疑惑有所帮助!接下来...
    99+
    2023-06-03
  • Java Socket通信Flash编程代码怎么写
    Java Socket通信Flash编程技巧有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java Socket通信在使用的时候有不少的问题,尤其是在小代...
    99+
    2023-06-17
  • Git和Django的并发编程:Java是关键吗?
    Git和Django是当今最常用的工具之一,它们各自拥有独特的功能和用途。Git是一个分布式版本控制系统,而Django是一个基于Python的Web框架。在日常开发中,我们经常需要使用Git和Django来开发和管理项目。但是,当我们需要...
    99+
    2023-10-16
    git django 并发
  • 剖析Python源代码编制过程是怎么样的
    剖析Python源代码编制过程是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python语言中提供的re模块能支持正则表达式,还提供SGML,XML分析模块,大多数的...
    99+
    2023-06-17
  • Java多线程发展史是怎样的
    本篇内容主要讲解“Java多线程发展史是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java多线程发展史是怎样的”吧!JDK 1.01996年1月的JDK1.0版本,从一开始就确立了Ja...
    99+
    2023-06-17
  • Python安全编码与代码审计是怎样的
    这篇文章给大家介绍Python安全编码与代码审计是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1 前言现在一般的web开发框架安全已经做的挺好的了,比如大家常用的django,但是一些不规范的开发方式还是会导致...
    99+
    2023-06-17
  • 怎样深入理解Java多线程与并发框中的synchronized 关键字
    怎样深入理解Java多线程与并发框中的synchronized 关键字,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、Class文件与对象对象头 32位JVM的对象头二、sy...
    99+
    2023-06-05
  • C语言编程中的thread多线程是怎样的
    本篇文章为大家展示了C语言编程中的thread多线程是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。线程创建与结束C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是<ato...
    99+
    2023-06-21
  • Java多线程之readwritelock读写分离的实现代码
    在多线程开发中,经常会出现一种情况,我们希望读写分离。就是对于读取这个动作来说,可以同时有多个线程同时去读取这个资源,但是对于写这个动作来说,只能同时有一个线程来操作,而且同时,当有一个写线程在操作这个资源的时候,其他的读线程是不能来操作这...
    99+
    2023-05-31
    java 多线程 adw
  • Java实现手写一个线程池的示例代码
    目录概述线程池框架设计代码实现阻塞队列的实现线程池消费端实现获取任务超时设计拒绝策略设计概述 线程池技术想必大家都不陌生把,相信在平时的工作中没有少用,而且这也是面试频率非常高的一个...
    99+
    2022-11-13
    Java手写线程池 Java线程池
  • 怎么进行Java Socket编程相关源代码的介绍
    今天就跟大家聊聊有关怎么进行Java Socket编程相关源代码的介绍,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java Socket编程在不断发展中有不少的问题存在,下面我们就...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作