一.
什么是线程
a.线程是一个程序内部的顺序控制流
b.线程和进程
1.每个进程都有独立的代码和数据空间(进程上下文),进程切换的开销大
2.线程:轻量的进程,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(pc),线程切换的开销小
3.多进程:在操作系统中能同时运行多个任务(程序)
4.多线程:在同一应用程序中有多个顺序流同时执行
自己去了解并发执行和并行执行!!!
调用线程的start方法是开启一个线程。而直接调用线程的run方法是直接运行方法,而不是开启线程
public class MyThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("Thread executed:" + i);
}
}
public static void main(String[] args) {
MyThread thread = new MyThread();
thread.run();//直接调用方法,相当于调用一个普通类的方法
System.out.println("---------------------------");
//thread.start();//启动一个线程的一个方法
}
}
二.
创建一个线程的两种方法:
1.继承Thread类
public class MyThread2 {
public static void main(String[] args) {
Thread1 t1 = new Thread1();
Thread2 t2 = new Thread2();
t1.start();
t2.start();
}
}
class Thread1 extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("hello:" + i);
}
}
}
// 继承Thread类创建线程
class Thread2 extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("world:" + i);
}
}
}
2.实现Runnable接口
public class MyThread3 {
public static void main(String[] args) {
Thread3 tr3 = new Thread3();
Thread4 tr4 = new Thread4();
Thread t3 = new Thread(tr3);
Thread t4 = new Thread(tr4);
t3.start();
t4.start();
}
}
// 实现Runnable接口创建线程
class Thread3 implements Runnable {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("hello:" + i);
}
}
}
class Thread4 implements Runnable {
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("world:" + i);
}
}
}
分享到:
相关推荐
Java 中的多线程编程 Java 中的多线程编程是指在一个程序中可以同时执行多个线程,以提高程序的执行效率和响应速度。多线程编程可以将一个大的任务分解成多个小的子任务,每个子任务可以独立执行,从而提高程序的...
### Java多线程详解:深度探索Java线程机制 #### 知识点一:线程与进程的区别 在深入探讨Java多线程之前,我们首先需要理解线程与进程的基本概念及其区别。进程是资源分配的基本单位,拥有独立的内存空间,而线程...
Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程主要通过继承Thread类或实现Runnable接口来实现。本教程《Java多线程编程核心技术》将...
在**C++11** 之前,尽管可以通过第三方库如Boost.Thread实现多线程编程,但这些解决方案通常不够直观,也不够标准化。随着**C++11** 的发布,标准库中包含了针对多线程编程的新组件,使得编写多线程应用程序变得更加...
#### 二、多线程与CPU交互机制 在多线程环境中,线程与CPU之间的交互机制非常重要。线程间的资源竞争导致了线程调度的重要性。操作系统通过调度算法来决定哪个线程获得CPU时间片,从而实现多线程程序的高效运行。 -...
本文将详细介绍 VC 中多线程编程的十个详细例程,旨在帮助读者深入理解多线程编程的奥妙。 一、问题的提出 在编写一个耗时的单线程程序时,我们发现程序会出现“死机”的情况,即程序在执行某个任务时,不再响应...
精品java学习教程,原理讲解+源码实战 27天实现java从入门到进阶 第一天:语言环境 第二天:常量变量 第三天:流程控制 ...第24天:多线程深入 第25天:GUI 第26天:网络变成 第27天:反射和设计模式
《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...
讲:陈冬 第一课:计算机中的环境变量 第二课:认识JVM 安装JDK 第三课:认识JAVA中的变量 第三课:理解类与对象 第三课附加:值传递和对象...第十课:多线程 第十一课:socket 第十二课:jdbc 第十三课:设计模式
24 实现 Java 多线程并发控制框架.mht 25 多线程、多平台环境中的跟踪.mht 26 使用 ConTest 进行多线程单元测试.mht 27 实现非阻塞套接字的一种简单方法.mht 28 基于事件的NIO多线程服务器.mht 29 驯服 Tiger ...
最近正在学习C++,费了很多心思,分亨一下我的学习资源,孙鑫C++教程(全20讲)PPT讲义源码及电子书资源包括三部分 ...第二十课:HOOK和数据库访问 希望对大家的学习有帮助,如果不错,请帮点个赞,谢谢
#### 十四、额外的多线程技术资源 对于想要深入了解多线程编程技术的开发者来说,可以从以下几个方面寻找资源: 1. **官方文档**:LabWindows/CVI的官方文档提供了详尽的多线程编程指南和技术说明。 2. **社区论坛...
公开课第二节:大厂常见算法题深度解析.mp4 公开课第三节:浅谈测试的职业发展与破局.mp4 公开课第四节:软件测试人员面试的技巧和互联网大厂真题分享.mp4 公开课第五节:测试管理的那些事儿.mp4 公开课第六节:自动...
本教程是ppt格式,适合初学mfc的编程,...第二章:对话框与控件 第三章:菜单与控制条 第四章:图形操作 第五章:文档和视 第六章:文档操作 第七章:mfc 通用类 第八章:异常处理 第九章:多线程 第十章:数据库编程
北大青鸟C#课件 完备课件 可提供给研究C#的初学者使用 也可提供给教学使用 适合相互学习 以及知识点总结 ...第十章节:多线程 第十一章节:数组和集合对象 第十二章节:C# 中的文件处理 注:参与评论返还积分
公开课第二节:大厂常见算法题深度解析.mp4 公开课第三节:浅谈测试的职业发展与破局.mp4 公开课第四节:软件测试人员面试的技巧和互联网大厂真题分享.mp4 公开课第五节:测试管理的那些事儿.mp4 公开课第六节:自动...