标签:bsp info 优先级 src alt class 异常 ima com
CPU:10核 主频100MHz
1核 主频 3GHz
那么哪一个CPU比较好呢?
CPU核不是越多越好吗?并不一定。主频用于衡量GPU处理速度的快慢,举个例子10头牛运送货物快还是1架飞机运算货物快?显然是1架飞机,因此1核3GHz的CPU较好,当然,在相同主频的情况下,CPU当然是越多越好。
在Java中,JVM虚拟机允许运行多个线程,他通过java.lang.Thread类来实现
Thread类特性:
构造方法:
一、创建线程的两种方式:
1.继承Thread类
package testThread; public class TestThread extends Thread{ public void run() { System.out.println("多线程运行的代码"); for(int i=0;i<10;i++) { System.out.println("这是多线程的逻辑代码"); } } }
package testThread; public class Test { public static void main(String[] args) { Thread t0 = new TestThread(); //在开启了线程后,线程与main()方法并行运行 t0.start();//启动线程 } }
2.实现Runnable接口
package testThread; public class TestRunnable implements Runnable{ @Override public void run() { // TODO Auto-generated method stub System.out.println(Thread.currentThread().getName()+"开始运行"); for(int i=0;i<10;i++) { System.out.println("这是多线程的逻辑代码"); } } }
package testThread; public class Test { public static void main(String[] args) { Thread t0 = new Thread(new TestRunnable()); t0.start(); Thread t1 = new Thread(new TestRunnable(),"线程t1"); t1.start(); } }
对于这种方式创建线程,可以给每个线程进行命名,否则默认为Thread-num。
利用实现方式:避免了单继承的局限性、多个线程可以共享同一个接口实现类对象,非常适合多个相同线程来处理同一份资源。
二、Thread类的相关方法
(1)基础方法
void start():启动线程
run():线程在被调度时执行的操作名称
String getName():返回线程的名称
void setName(String name):设置线程的名称
static currentThread():返回当前线程
(2)优先级方法
getPriority():获得优先级
setPriority(int newPriority):设置优先级
线程创建时继承父线程的优先级
(3)其它方法
static void yield():线程让步
join():当某个程序执行流中调用其它线程的join()方法时,调用线程将被阻塞,直到join()方法加入的join线程执行完毕为止。
static void sleep(long millis):指定时间,毫秒
stop():强制线程生命周期结束
boolean isAlive():判断线程是否还活着
三、线程的生命周期
JDK中用Thread.State来表示线程的状态,包括:
新建:声明并实例化之后;
就绪:执行start之后;
运行:得到cpu的使用权,run()方法开始运行;
阻塞:run()方法停止执行,处于等待状态;
死亡:线程完成了全部工作或被提前终止;
四、线程的同步
未完待续。。。
标签:bsp info 优先级 src alt class 异常 ima com
原文地址:https://www.cnblogs.com/xiximayou/p/12074327.html