Java线程Thread
来源:互联网 发布:oracle数据库分页查询 编辑:程序博客网 时间:2024/06/08 09:02
1 什么是线程
1.1线程就是计算机执行的一个小任务,一个进程可以包含多个线程。
1.2线程的并行和并发:
并行是一同执行,要求计算机必须要有多个cpu
并发是按先后顺序执行,只不过计算机运行的速度非常快就可以理解为是同时执行的
2证明JVM是多线程的
JVM是多线程的:它有垃圾处理机制和程序的主线程
public class JVMManyThread { public static void main(String[] args) { for (int i = 0; i < 500000; i++) { new Demo(); } for (int i = 0; i < 500000; i++) { System.out.println("1111111111111111111111111111111111111"); } }}class Demo{ @Override public void finalize(){ System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------"); }}
3创建线程的两种方法
3.1继承Thread类调用start()方法
public class ExtendsThread { public static void main(String[] args) { Demo demo = new Demo();//3生成对象 demo.start();//4调用start()方法 for (int i = 0; i < 1000; i++) { System.out.println("+++++++++++++++++++++++++"); } }}class Demo extends Thread{//1创建Demo类继承Thread类 @Override public void run() {//2重写run()方法 for (int i = 0; i < 1000; i++) { System.out.println("-----------------------------"); } }}
3.2实现Runnable接口,创建对象传给Thread类的构造方法,之后返回对象调用start()方法
public class ImplementsRunable { public static void main(String[] args) { MyTread myTread = new MyTread(); Thread thread = new Thread(myTread); thread.start(); for (int i = 0; i < 1000; i++) { System.out.println("--------------------------------------"); } }}class MyTread implements Runnable{ @Override public void run() { for (int i = 0; i < 1000; i++) { System.out.println("++++++++++++++++++++++++++++++++++++++++"); } }}
4通过匿名内部类来实现线程的两种方法
代码如下:
public class Demo04_Thread { public static void main(String[] args) { // 通过继承thread new Thread() { //1创建Thread对象 @Override public void run() { //2重写run()方法 for (int i = 0; i < 1000; i++) { System.out.println("+++++++++++++++++++++++++++++++"); } } }.start(); //3调用start()执行 // 通过实现Runnable接口 new Thread(new Runnable() { //1创建Thread对象传入Runnable对象 public void run() { //2写run()方法 for (int i = 0; i < 1000; i++) { System.out.println("------------------------------"); } }; }).start(); //3调用start()执行 }}
5给线程取名字
public class Demo01_Name { public static void main(String[] args) { new Thread() { @Override public void run() { this.setName("11");//设置名字 System.out.println(this.getName());//打印读取名字 } }.start(); Thread thread = new Thread(new Runnable() { public void run() { System.out.println("-------------------"); } }); thread.setName("22"); System.out.println(thread.getName()); thread.start(); }}
获取当前线程对象
阅读全文
2 0
- [Java] Thread 线程
- JAVA 线程Thread
- java线程thread详解
- java 线程 thread
- Java 线程Thread
- Java线程 Thread
- Java 线程 Thread Runnable
- Java-Thread (线程)
- Java--线程(Thread)
- JAVA中线程Thread
- Java Thread(线程)
- java 线程 thread runnable
- Java线程Thread类
- Java Thread线程
- java Thread线程实例
- Java线程Thread
- Java之线程Thread
- java-Thread(线程)
- CNN学习(一)
- reduce端join算法实现
- mongoose.model创建集合
- 大型网站架构总结
- Activity的启动流程
- Java线程Thread
- Backpropagation Algorithm
- 【树状数组--思维】poj 3928 pingpong
- 快速好写的求最长回文子串的代码(O(n^2))
- 更改Mysql数据库存储位置的具体步骤
- Docker部署迁移实战
- 221. Maximal Square
- hdu1711(kmp算法)
- Java 将一个list按照某个字段分组后放入到一个新的list里面