1 为什么使用多线程
为了抢占CPU资源。cpu多倾向于哪个应用程序,就快一点。就像家庭一样。
如果是计算密集型的任务,多去添加一些线程池,
为了抢占CPU资源。cpu多倾向于哪个应用程序,就快一点。就像家庭一样。
如果是计算密集型的任务,多去添加一些线程池,
如果是IO密集型任务,减少线程池,减少线程池的上下文切换。提升执行效率。
2 异常 不正常的事件。
1 throws 向上级抛。
2 试图自己去捕获。自己去捕获
3
/**
*
*/
package ccf;
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.util.*;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class bowen005 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建一个询问框,返回值是int类型。数字好判断。设计者
int chice = JOptionPane.showConfirmDialog(null, "请求控制对方电脑","董博文",JOptionPane.YES_NO_OPTION);
//判断点击的按钮
if(chice ==JOptionPane.NO_OPTION) {
//System.out.println("love you");
//跳出这个方法
return;
}
//请输入ip地址和端口号
JOptionPane.showInputDialog("请输入ip地址和端口号", "192.168.1.1:8080");
/*远程桌面监控 */
//弹出框口
JFrame jf = new JFrame("远程桌面监控");
//设置大小
jf.setSize(600,600 );
//设置置顶
jf.setAlwaysOnTop(true);
//点击x号退出,后台程序退出
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置是否可见
jf.setVisible(true);
/*远程桌面监控*/
//内容 权限,操作系统权限
//直接查询操作系统,有了它就获取到操作系统的权限。
Toolkit tk = Toolkit.getDefaultToolkit();
//获取屏幕的大小 对象 取个老婆。可以做很多事情
// Dimension dm = new Dimension();
//dm.getWidth();0 ,dm是通过tk创建的,而不是new出来的,new出来的坐标不对,是0!
Dimension dm =tk.getScreenSize();
//创建一个小面板并添加到大面版里面。
JLabel imageJable = new JLabel();
jf.add(imageJable);
while(true) {
//创建一个机器人,帮助我们截取电脑屏幕
try {
Robot robot = new Robot();
//指定截取的区域,括号里是坐标 jf.getWidth(),0,起点坐标。(int)dm.getWidth()-jf.getWidth(),(int)dm.getHeight()坐标
//踩点
Rectangle rec = new Rectangle(jf.getWidth(),0,(int)dm.getWidth()-jf.getWidth(),(int)dm.getHeight());
//捕获
BufferedImage bufTmg = robot.createScreenCapture(rec);
//放进去
imageJable.setIcon(new ImageIcon(bufTmg));
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}