「java时间线程」java线程执行时间
本篇文章给大家谈谈java时间线程,以及java线程执行时间对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Java中,线程是什么意思,多线程又是什么
- 2、java 中如何使线程运行一定时间后停止?
- 3、Java用线程循环换获取当前时间问题!每秒刷新一次~ 求代码,~!
- 4、java 如何计算线程执行时间
- 5、java如何计算线程池中线程同步和异步运行时间
- 6、java创建三个线程,每个线程都是获取系统时间和输出系统时间的
Java中,线程是什么意思,多线程又是什么
在计算机中当一个程序运行的时候就会创建至少一个进程,例如当我们运行QQ的时候,系统就会创建进程来处理我们平时的一些操作,当我们打开任务管理器的时候,在进程的列表里面就可以找到QQ.exe的运行程序;
在计算机中处理进程之外还有另一个概念就是线程,线程是存在于进程当中,一个进程可以包含多个线程;当我们的计算机有多核处理器的时候,使用多线程可以加快程序的运算速率;如果一个进程中只有一个线程,当程序遇到一个比较耗时的计算的时候,由于程序是单线程的,那么程序只能等待这个运算结束的时候再继续运行,这样会大大的降低程序的效率;当时用多个线程的时候,在某个线程遇到比较耗时的运算的时候,该线程可以继续自己的运算,但是其他的线程也可以同步进行,这样当耗时的计算结束之后,其他线程也将自己所需要的东西执行完毕,这样就会很大的提高程序执行效率;
在程序运行中对于文件的保存相对于处理器的运算速度来说是很慢的,当我们程序中接收到一个保存文件的信息之后,我们可以创建一个保存文件的线程,在主线程中我们可以继续进行我们的其他运算,这样当文件保存好之后,我们的其他运算也会完成,互不影响;
在Java中我们可以创建一个自己的类继承于Thread类,并且重写run() 方法,当线程启动之后,run()方法里面的操作都在线程中进行处理,而不会影响主线程的信息;
当我们创建好一个自定义线程类之后,我们可以创建这个自定义线程的对象,进行线程的启动;线程须调用start();方法进行启动,这样run()方法里面的内容才会在线程中运行;如果我们不去调用start()方法,那我们只是创建了一个普通的类,即使我们手动调用run()方法,run()方法里面的内容也不会在线程中运行;
在Java中线程主要有初始状态,运行状态,阻塞状态,终止状态等;当我们新创建一个线程对象的时候,此时线程的状态为初始状态;当我们调用start()之后,此时的线程才被激活成为运行状态,之后run()方法里面的信息才会在子线程中运行;我们可以在不同的阶段调用不同的方法将线程设置为不同的状态;比如有时候我们的操作需要等待其他线程中运算结束之后才可以继续进行,这时候我们就可以将线程设置为等待状态,当需要的资源满足条件之后,可以继续运行当前的线程;
以上的内容就是关于Java中线程是什么,更多关于Java方面的问题可以看下这个视频教程:网页链接,希望我的回答能帮到你。
java 中如何使线程运行一定时间后停止?
java中使线程运行一定时间后停止,可以设置一个变量,当满足条件则退出线程:
import static java.lang.Thread.currentThread;
import java.util.concurrent.TimeUnit;
public class ThreadPauseDemo{
public static void main(String args[]) throws InterruptedException {
Game game = new Game();
Thread t1 = new Thread(game, "T1");
t1.start();
// 现在停止Game线程
System.out.println(currentThread().getName() + " is stopping game thread");
game.stop();
// 查看Game线程停止的状态
TimeUnit.MILLISECONDS.sleep(200);
System.out.println(currentThread().getName() + " is finished now");
}
}
class Game implements Runnable{
private volatile boolean isStopped = false;
public void run(){
while(!isStopped){
System.out.println("Game thread is running......");
System.out.println("Game thread is now going to pause");
try{
Thread.sleep(200);
} catch(InterruptedException e){
e.printStackTrace();
}
System.out.println("Game thread is now resumed......");
}
System.out.println("Game thread is stopped......");
}
public void stop(){
isStopped = true;
}
}
程序输出如下:
Game thread is running......
main is stopping game thread
Game thread is now going to pause
Game thread is now resumed......
Game thread is stopped......
main is finished now
Java用线程循环换获取当前时间问题!每秒刷新一次~ 求代码,~!
import java.awt.Toolkit;
import java.util.Calendar;
import javax.swing.*;
public class Time extends JFrame implements Runnable{
int year = 0;
int moth = 0;
int day = 0;
int hour = 0;
int minute = 0;
int second = 0;
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
JLabel jl1 = null;
public Time(){
Calendar c=Calendar.getInstance();//获得系统当前日期
year=c.get(Calendar.YEAR);
moth = c.get(Calendar.MONTH)+1;//系统日期从0开始算起
day=c.get(Calendar.DAY_OF_MONTH);
hour = c.get(Calendar.HOUR);//小时
minute =c.get(Calendar.MINUTE);//分
second = c.get(Calendar.SECOND);//秒
jl1 = new JLabel(year + "年" + moth + "月" + day + "日" + hour+ "时" + minute + "分" + second + "秒");
jl1.setBounds(200, 100, 100, 50);
this.add(jl1);
this.setTitle("时间线程");
this.setLocation((width - 500) / 2, (height - 500) / 2);
this.setSize(500, 500);
this.setVisible(true);
}
public static void main(String[] args) {
Runnable aRunnable = new Time();
new Thread(aRunnable).start();
}
@Override
public void run() {
while(true){
try {
Calendar c=Calendar.getInstance();//获得系统当前日期
year=c.get(Calendar.YEAR);
moth = c.get(Calendar.MONTH)+1;//系统日期从0开始算起
day=c.get(Calendar.DAY_OF_MONTH);
hour = c.get(Calendar.HOUR);//小时
minute =c.get(Calendar.MINUTE);//分
second = c.get(Calendar.SECOND);//秒
jl1.setText(year + "年" + moth + "月" + day + "日" + hour+ "时" + minute + "分" + second + "秒");
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
java 如何计算线程执行时间
记录一个起始时间,记录一个结束时间,两个相减就是程序运行时间,代码如下
long start = System.currentTimeMillis(); // 记录起始时间
try {
Thread.sleep(5000); // 线程睡眠5秒,让运行时间不那么小
} catch (InterruptedException e) {
e.printStackTrace();
}
long end = System.currentTimeMillis(); // 记录结束时间
System.out.println(end-start); // 相减得出运行时间
得出的单位是毫秒。
java如何计算线程池中线程同步和异步运行时间
两个相减就是运行时间。启动线程之前,获取系统时间,做为开始时间,线程结束后,在线程最后再获取一次系统时间,这个时间减去刚刚上面的那个时间,就是运算时间,记录一个起始时间,记录一个结束时间,两个相减就是程序运行时间。
java创建三个线程,每个线程都是获取系统时间和输出系统时间的
通过Runnable接口实现run方法,然后通过thread运行3个线程
1、定义Runnble
public class MyRunnable implements Runnable {//实现Runnable接口的run方法
public void run() {
try{
Date dt = new Date();//获取当前日期;
Thread.sleep(1000);//线程休眠1秒钟
System.out.println(dt);//输出日期
}catch(Exception e){}
}
}
2、启动3个线程
MyRunnable mr = new MyRunnable();
Thread t1 = new Thread(mr);//定义第一个线程
//启动
t1.start();//启动第一个线程
Thread t2 = new Thread(mr);//定义第二个线程
//启动
t2.start();//启动第二个线程
Thread t3 = new Thread(mr);//定义第三个线程
//启动
t3.start();//启动第三个线程
java时间线程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java线程执行时间、java时间线程的信息别忘了在本站进行查找喔。