框架构建过程中遇到需要用到线程的地方,虽然以前经常听到线程,也看过一些线程类的文章,但真正使用时还是遇到一些问题,此篇正式为了记录自己对线程实操的体会。

入口类代码:

public class test {

    /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub. final misc ms=new misc(); final Thread t1=new Thread(){
//public boolean running = false;
        //需要在run方法里调用或定义线程的动作
public void run() { for (int i = 0; i < 100; i++) {
System.out.println("我是个字符串A"+i);
}
ms.callbat("notepad.exe");
//running = true;
} }; System.out.println("thread separate......"); Thread t2=new Thread(){
public void run() {
ms.takescreenshot();
/* 这里的join方法表示t2要等t1执行完成后才开始执行
try {
t1.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
for (int i = 0; i < 100; i++) {
System.out.println("我是个字符串B"+i);
}
}
}; //set thread running priority, its more important if value is larger;这里通过设置优先级让t1先执行,然后不等它执行完成就开始t2的执行
t1.setPriority(9);
t2.setPriority(1);
t1.start();
t2.start();
}
}

misc类的代码:

import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException; import javax.imageio.ImageIO; public class misc { /**
* @param args
*/
public void misc(){ } public void callbat(String batName){
String cmd = "cmd /c start D:\\"+ batName + ".bat";// pass
try {
Process ps = Runtime.getRuntime().exec(batName);
ps.waitFor();
} catch (IOException ioe) {
ioe.printStackTrace();
}
catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("child thread done......");
} public void takescreenshot(){
long time=System.currentTimeMillis();
try {
Robot robot = new Robot();
BufferedImage bi=robot.createScreenCapture(new Rectangle(900,800));
ImageIO.write(bi, "jpg", new File("D:/screenshot/"+time+".jpg")); } catch (AWTException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
misc ms=new misc(); ms.callbat("notepad.exe");
ms.takescreenshot(); } }

这里只是线程的非常简单的一个用法,整个线程的知识点还是非常多的,如果需要真正掌握它还真得花一番功夫深入研究才行。这篇文章只是使用线程的一个开始,后续会在基于工作的基础上继续深入研究。

java线程实践记录的更多相关文章

  1. Java 线程池记录

    Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.newFixe ...

  2. Java线程池实现原理及其在美团业务中的实践

    本文转载自Java线程池实现原理及其在美团业务中的实践 导语 随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流.使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器.J.U.C提供 ...

  3. Java线程池实现原理及其在美团业务中的实践(转)

    转自美团技术团队:https://tech.meituan.com/2020/04/02/java-pooling-pratice-in-meituan.html 随着计算机行业的飞速发展,摩尔定律逐 ...

  4. 【转载】深度解读 java 线程池设计思想及源码实现

    总览 开篇来一些废话.下图是 java 线程池几个相关类的继承结构: 先简单说说这个继承结构,Executor 位于最顶层,也是最简单的,就一个 execute(Runnable runnable) ...

  5. Java并发指南12:深度解读 java 线程池设计思想及源码实现

    ​深度解读 java 线程池设计思想及源码实现 转自 https://javadoop.com/2017/09/05/java-thread-pool/hmsr=toutiao.io&utm_ ...

  6. 2019上海爱奇艺大数据Java实习生-面试记录

    目录 一轮 电话面试 二轮 代码笔试 三轮 技术面试 总结 附:电话面试问题点解惑 补充:面试未通过 一轮 电话面试 2019.04.28 16:21 [w]:面试官,[m]:我,下面的内容来自电话录 ...

  7. Java 虚拟机学习记录

    参考资料 JVM高级特性与最佳实践-周志明 HotSpot 虚拟机垃圾回收调优指导 JVM 标准(Java SE 8) JSR 133 Java平台内存模型与线程修订版 命令行工具 JDK Vs JR ...

  8. Java线程并发:知识点

    Java线程并发:知识点   发布:一个对象是使它能够被当前范围之外的代码所引用: 常见形式:将对象的的引用存储到公共静态域:非私有方法中返回引用:发布内部类实例,包含引用.   逃逸:在对象尚未准备 ...

  9. Java线程的概念

    1.      计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行:当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了. 缓 ...

随机推荐

  1. Box2d学习

    Box2d 学习 . Testbed 项目: Testbed 是 Box2d 源码里包含的一个例子程序.Testbed 封装了界面显示.游戏循环等部分的代码.添加新的例子的时候,只需要关注与 Box ...

  2. 290. Word Pattern

    题目: Given a pattern and a string str, find if str follows the same pattern. Here follow means a full ...

  3. docker基本概念,创建、起动实例,保存自定义镜像等常用操作

    14年docker火了一阵,当时自学整理了一份文档,后来冷落了. 现在发现很多同事还是想学习docker,但无从下手,所以重新整理了这篇分享,10分钟就可以带你彻底理解docker,并能够创建属于自己 ...

  4. USACO Section 3.2: Feed Ratios

    直接暴力搜 /* ID: yingzho1 LANG: C++ TASK: ratios */ #include <iostream> #include <fstream> # ...

  5. ajax练习四留言板

    留言界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  6. poj 1180 斜率优化dp

    这个题目要是顺着dp的话很难做,但是倒着推就很容易退出比较简单的关系式了. dp[i]=min(dp[u]+(sum[u-1]-sum[i-1]+s)*f[i]);dp[i]代表从i到结尾需要花费的代 ...

  7. NDK(8)"Unknown Application ABI"的解决方案

    ndk 调试本地应用时 报错如下 : console信息: [2015-08-17 19:52:05 - NdkSample] Unknown Application ABI: [2015-08-17 ...

  8. GMT and CST

    GMT(Greenwich Mean Time) 代表格林尼治标准时间 而CST却同时可以代表如下 4 个不同的时区: Central Standard Time (USA) UT-6:00    C ...

  9. leetcode:Count and Say

    The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ...

  10. ACM - ICPC World Finals 2013 H Матрёшка

    原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 题目翻译: 问题描述 俄罗斯套娃是一些从外到里大小递减的传 ...