Java多线程实现窗口背景颜色轮换(synchronize加锁)
来源:互联网 发布:天窗用处大吗 知乎 编辑:程序博客网 时间:2024/05/16 18:30
最近学校请外面老师来上课,给我们巩固了一些Java基础,并写了这个多线程实现窗口轮换背景,我加了wait()和notifyAll()方法。不过时间延迟上有一点点问题,希望与大家共勉,以下是贴的代码:
package com.ex;import java.awt.Color;import javax.swing.JFrame;import javax.swing.JPanel;public class PrintColor extends JFrame{private static JPanel panel;private static boolean b; public PrintColor(){this.setBounds(200, 200, 200, 200);this.setTitle("我是窗口");b = false;panel = (JPanel) this.getContentPane();//panel.setBackground(Color.GREEN);}public static void main(String[] args) {// TODO Auto-generated method stubfinal PrintColor printColor = new PrintColor();//Thread thread = new Thread(printColor);//thread.start();new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubwhile(true){synchronized (printColor) {if(!b){try {printColor.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}panel.setBackground(Color.GREEN);System.out.println(Thread.currentThread().getName());b = true;printColor.notifyAll();}}}}).start();new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubwhile(true){synchronized (printColor) {if(b){try {printColor.wait();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}panel.setBackground(Color.RED);System.out.println(Thread.currentThread().getName());b = false;printColor.notifyAll();}}}}).start();printColor.setVisible(true);}ps:整理自己所写的代码真的很重要。活到老学到老吧!
阅读全文
0 0
- Java多线程实现窗口背景颜色轮换(synchronize加锁)
- 加锁 synchronize
- Java 增加窗口、添加窗口背景颜色
- java多线程基础(synchronize关键字)
- Java中synchronize 与lock实现多线程同步
- java swing 设置窗口背景颜色
- java多线程和synchronize锁
- Java 多线程加锁
- java 多线程 加锁
- java多线程加锁
- java窗口背景颜色怎么设定?用setBackground()好像不行,请大侠指教!
- Java多线程之深入理解synchronize关键字
- java多线程以及资源加锁
- Thread多线程学习(二),java多线程中synchronize锁的使用和学习
- MFC修改窗口背景颜色
- MFC改变窗口背景颜色
- MFC设置窗口背景颜色
- 设置win7窗口背景颜色
- HTML5介绍和新增语义
- 关于爬虫的构思和猜想
- 【JSON】 JSON 整理
- JNDI Datasource HOW-TO(Tomcat 9)
- Two Sum类问题
- Java多线程实现窗口背景颜色轮换(synchronize加锁)
- 全网页CSS 超链接无下划线
- 30STL之List容器
- php require 和 include区别
- 机器学习-笔记(一)
- good-storage使用
- Linux 中查看文件第n行内容的命令
- [转]《Hadoop基础教程》之初识Hadoop
- win10老是弹出安全登录框