java synchronized-java synchronized问题 求指导

问题描述

java synchronized问题 求指导

import java.util.LinkedList;
public class Test3 {
LinkedList storage= new LinkedList();
int max=10;
public Test3()
{
}
public void start(){
new product().start();
new c().start();
}
class product extends Thread{
public void run(){
while(true){
synchronized (storage) {
while(storage.size()==max){
System.out.println("仓库满了,你不要生产了");
try {
storage.wait();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

                    }
                   Object o=new Object();
                   if(storage.add(o)){
                       System.out.println("继续生产,往仓库里放");
                       try {
                        Thread.sleep(1000);
                        storage.notify();
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                   }
               }
           }
       }
 }

 class c extends Thread{
       public void run(){
           while(true){
               synchronized (storage) {
               while(storage.size()==0){
                    System.out.println("仓库空了");
                    try {
                        storage.wait();
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                storage.removeLast();

                System.out.println("正在取出");
                try {
                Thread.sleep(2000);
                    storage.notify();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
           }
       }
 }
 public static void main(String[] args) {
     Test3 t=new Test3();
     t.start();
}

}

时间: 2024-08-02 05:13:15

java synchronized-java synchronized问题 求指导的相关文章

基础-JAVA课程设计实数计算器求指导思路

问题描述 JAVA课程设计实数计算器求指导思路 [问题描述]运用面向对象程序设计知识,利用Java语言设计和实现一个复数计算器.要求具备如下主要功能: (1)建立实数类.复数类 (2)实现实数.复数信息的初始化 (3)实现实数的加.减.乘.除.自增.自减.求平方.二次方根等操作 (4)实现复数的加.减.乘.除.取模.求平方.求共轭复数.求单个复数的向量角.求两个复数的夹角等运算 (5)实现实数.复数信息的输出 在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出Java语言关于类.继承

关于java运算符的问题,求指导

问题描述 我是一个java初学者,碰到一个问题,望大神指点!有一段程序是这样的:publicclassFoo{publicdoublecrazyCalc(doublex,inty){x+=--y/x++;returnx*y}publicstaticvoidmain(String-args){Foofoo=newFoo()inta=14,b=3;doublec;c=foo,crazyCalc(b,a/=2);System.out.println(c+''''+a+''''+b);}}答案输出分别为

用js写的计算器问题,求指导

问题描述 用js写的计算器问题,求指导 恩 代码不是我写的 网上找的 我没有看懂 看了半天没看懂 我想让大神帮我看看 帮我加上注释 让一个新人能看懂 还有就是 ,有三个功能没有实现 我写了几次,写错了 呵呵 所以求帮助 还有就是怎么在源代码上 实现 1+2+3*6/7 这个公式呢 先加在乘后除 要在屏幕上显示的 完了按等于键 等于出结果 像图片显示那样 不能就算了 代码下面 解决方案 你这个我就没空看了,随便写了一个,自己看注释javascript计算器 解决方案二: js jquery. $(

Java中使用synchronized和Lock对象获取对象锁

在并发环境下,解决共享资源冲突问题时,可以考虑使用锁机制. 1.对象的锁 所有对象都自动含有单一的锁. JVM负责跟踪对象被加锁的次数.如果一个对象被解锁,其计数变为0.在任务(线程)第一次给对象加锁的时候,计数变为1.每当这个相同的任务(线程)在此对象上获得锁时,计数会递增. 只有首先获得锁的任务(线程)才能继续获取该对象上的多个锁. 每当任务离开一个synchronized方法,计数递减,当计数为0的时候,锁被完全释放,此时别的任务就可以使用此资源. 2.synchronized同步块 2.

java ee-软件工程课程设计!!!求指导

问题描述 软件工程课程设计!!!求指导 使用java,jsp ,数据库,ajax,等等技术,开发一款电子商务平台,能够进行正常的运转,不要求最先进的技术,但要完成最基本的需求.. 解决方案 http://www.jb51.net/books/292002.html 解决方案二: 这种系统一般用mvc三层结构比较好做

多线程-synchronized java “同步”

问题描述 synchronized java "同步" 在Java中,synchronized关键字是用来控制线程同步的,就是在多线程的环境下,控制synchronized代码段不被多个线程同时执行.synchronized既可以加在一段代码上,也可以加在方法上. 知道synchronized是干什么的了,但还是不理解"同步"二字表示什么意思?与其作用关联不到一起: synchronized是用来控制线程不能同步的,多个线程不能同时执行某段代码的步骤,应该是这样理解

java运行提示:无法加载主类,觉得程序没错,求指导!!!

问题描述 java运行提示:无法加载主类,觉得程序没错,求指导!!! package 基本语句; public interface 接口 { int a=1; int b=2; int c=3; int d=4; int f=5; void print(); void print1();}class jiekou implements 接口{ public void print() { System.out.println(a+b); } public void print1() { Syste

j2ee-新人跪求指导Java自学路线

问题描述 新人跪求指导Java自学路线 我现在自学完了Javase,oracle 想问一下个为大神是否可以跳过javaweb的学习直接学习j2ee?

java 关于扩展类 很基础的一个 刚接触java求指导

问题描述 java 关于扩展类 很基础的一个 刚接触java求指导 已经有了一个类 public class Person{ } 之后又有一个Person类的扩展类Student类 那么在 eslipse中编写程序时 是有两个类 对吧?那扩展类Student需要如何创建这个类啊? 解决方案 首先在eclipse中新建两个类,在其中一个类中写main方法写测试代码.测试要依据你的需求看怎么测了. 解决方案二: public Student extends Person{ //extends继承 }