当前位置: 首页 > news >正文

网站全景看图怎么做seo课培训

网站全景看图怎么做,seo课培训,桂林市网站建设公司,网站开发费用如何账务处理1 概念 1.1 线程是什么?? 线程(Thread)是计算机科学中的一个基本概念,它是进程(Process)中的一个执行单元,负责执行程序的指令序列。线程是操作系统能够进行调度和执行的最小单位。…

1 概念

1.1 线程是什么??

线程(Thread)是计算机科学中的一个基本概念,它是进程(Process)中的一个执行单元,负责执行程序的指令序列。线程是操作系统能够进行调度和执行的最小单位。在多任务操作系统中,多个线程可以在同一个进程内并发执行,共享进程的资源。

{

假设你正在厨房中准备晚餐,这个过程中有多个线程在运行,每个线程代表一个不同的烹饪任务。这些线程可以同时执行,以加速整个烹饪过程,就像多线程在计算机程序中一样。

  1. 主厨线程:这个线程负责协调整个烹饪过程。主厨线程制定了食谱和指导其他线程如何协同工作。

  2. 切菜线程:这个线程负责将食材切成适当的大小和形状。它可以在切菜板上进行多个切割任务,以提高效率。

  3. 炉灶线程:这个线程负责在炉灶上烹饪不同的菜肴。例如,一个线程可以煮汤,另一个线程可以煎肉,它们可以同时工作,以节省时间。

  4. 烤箱线程:如果你需要烤一道菜,那么烤箱线程可以负责在烤箱中烘烤食物,同时其他线程继续处理其他任务。

  5. 洗碗线程:一旦完成烹饪,就有一个线程负责洗碗和清理厨房。这个线程可以与其他线程并发运行,以确保整个晚餐流程的顺利结束。

在这个例子中,每个线程都代表一个不同的烹饪任务,它们可以并行工作,以提高烹饪效率,就像多线程在计算机程序中允许不同任务并发执行一样

}

1.2  为什么要使用线程??

1 “并发编程”成为“刚需”

        单核CPU的发展遇到了瓶颈,想要提高算力,就需要多核CPU。而并发编程能够充分利用多核CPU资源;

        有些任务场景需要“等待IO”,为了让等待的时间去做一些其他工作,也需要使用到并发编程。

2. 虽然进程也能够实现并发编程,但是线程比进程更加轻量级。

  • 创建线程比创建进程更快.
  • 销毁线程比销毁进程更快.
  • 调度线程比调度进程更快.

1.3 进程和线程的区别??

  • 进程是包含线程的。每个进程至少有一个线程的存在,也就是主线程;
  • 进程和线程之间不共享内存空间。同一个进程的线程之间共享同一内存空间;
  • 进程是系统分配资源的最小单位,线程是操作系统调度的最小单位;
  • 进程是相互独立的,一个进程的崩溃通常不会影响其他进程。线程之间更密切相关,一个线程的错误可能会影响到同一进程中的其他线程。
  • 创建和销毁进程通常比线程昂贵,因为进程需要分配和释放独立的内存空间和资源。线程的创建和销毁通常更快,因为它们共享进程的资源,不需要分配独立的内存空间。

1.4 Java的线程和操作系统的线程的区别??

  • 线程是操作系统中的概念. 操作系统内核实现了线程这样的机制, 并且对用户层提供了一些 API 供用户使用(例如 Linux pthread ).
  • Java 标准库中 Thread 类可以视为是对操作系统提供的 API 进行了进一步的抽象和封装.

2 感受多线程代码

多线程和普通程序最大的区别就是每个线程都是独立的执行流 多线程之间是并发执行的。

public class ThreadDemo {private static class MyThread extends Thread{@Overridepublic void run() {Random random = new Random();while (true){// 打印主线程名称System.out.println(Thread.currentThread().getName());try {Thread.sleep(random.nextInt(10));//随机停止运行0-9秒} catch (InterruptedException e) {e.printStackTrace();}}}}public static void main(String[] args) {MyThread t1 = new MyThread();MyThread t2 = new MyThread();MyThread t3 = new MyThread();//启动并创建线程工作t1.start();t2.start();t3.start();//主线程工作Random random = new Random();while (true){// 打印主线程名称System.out.println(Thread.currentThread().getName());try {Thread.sleep(random.nextInt(10));//随机停止运行0-9秒} catch (InterruptedException e) {e.printStackTrace();}}}
}

结果:

我们可以使用JDK提供的jconsole命令观察线程(在jdk的bin目录下面)

3 创建线程的“五种”方式

方法1 继承Thread类

public class ThreadDemo1 {static class MyThread extends Thread{//重写run方法  run描述该线程要干的活是什么@Overridepublic void run() {System.out.println("我是一个线程 hello thread!");}//run方法执行完毕后 新的这个线程就会被销毁}public static void main(String[] args) {Thread thread = new MyThread();//thread类不需要任何包??为什么还有哪些我们见过的 出现这种情况 java.lang包下面的是不用导包的 比如string stirngbuilderthread.start();//线程中的启动方法 start创建了一个新线程 有新线程来执行run方法}
}

方法2 实现Runnable 接口

// Runnable 作用就是描述一个“要执行的任务” run方法就是任务的执行细节
class MyRunnable implements Runnable{@Overridepublic void run() {System.out.println("hello thread-runnable");}
}public class ThreadDemo2 {public static void main(String[] args) {// new Runnable就是描述一个任务MyRunnable runnable = new MyRunnable();//然后将这个任务交给线程来执行Thread thread = new Thread(runnable);thread.start();thread.run();/** thread.run()是在当前线程中执行线程的任务,没有创建新的线程,不实现并发。thread.start()创建一个新的线程,并在新线程中执行线程的任务,实现了多线程并发。通常应该使用thread.start()来启动线程*/}
}

首先对比一下上面两种方法:

  • 继承 Thread , 直接使用 this 就表示当前线程对象的引用.
  • 实现 Runnable 接口, this 表示的是 MyRunnable 的引用. 需要使用 Thread.currentThread()

后面的方法都是前两者的“变形”:

方法3 匿名内部类创建 Thread 子类对象

//使用匿名内部类来实现线程
public class ThreadDemo3 {public static void main(String[] args) {Thread t = new Thread() {@Overridepublic void run() {System.out.println("匿名内部类实现thread");}};t.start();}
}

方法4 匿名内部类创建 Runnable 子类对象

//使用匿名内部类
public class ThreadDemo4 {public static void main(String[] args) {Thread t = new Thread(new Runnable() {@Overridepublic void run() {System.out.println("实现runnable-匿名内部类");}});t.start();}
}

方法5 lambda 表达式创建 Runnable 子类对象

//lambda
public class ThreadDemo5 {public static void main(String[] args) {Thread t = new Thread(() -> {System.out.println("hello thread");});t.start();}
}

http://www.pjxw.cn/news/26415.html

相关文章:

  • 如何加强网站建设和信息宣传大侠seo外链自动群发工具
  • 建立网站第一步是建立什么百度帐号
  • 不属于企业网站建设基本标准是西安网站建设优化
  • 本地拖拽网站建设什么是口碑营销
  • wordpress个人博客模板下载seo营销是什么意思
  • 汕头市网站建设公司省好多会员app
  • b2b网站推广怎么做网站关键词优化软件
  • vs2013做的网站北京百度关键词优化
  • 宿州网站建设百度认证营销顾问
  • 滕州网站建设制作seo网站关键词优化报价
  • 免费网站你懂我意思正能量软件上海seo顾问推推蛙
  • 转移网站如何转数据库中铁建设集团有限公司
  • tom企业邮箱网站的排名优化怎么做
  • 河北建站公司千峰培训出来好就业吗
  • 高水平的锦州网站建设seo推广代运营
  • 国内优秀的网站设计seo网络优化日常工作内容
  • 网站空间便宜百度一下官网页
  • 做新闻网站怎么赚钱北京seo薪资
  • 英文网站建设图片手机如何建立网站
  • 东铁匠营网站建设百度经验登录入口
  • 哪个网站可以做海报百度搜索大数据查询
  • 村委会网站源码 php360搜索引擎推广
  • 文学网站开发设计报告网站建设方案书模板
  • 泰州做房产的网站数据分析软件哪个最好用
  • 一起装修网官网杭州seo排名
  • 做网站需要哪些参考文献网络营销的渠道有哪些
  • 国外c2c平台seo网站排名厂商定制
  • 企业网上办事大厅seo用什么论坛引流
  • 网站开发设计有哪些电商网站商品页的优化目标是什么
  • vb.net 网站开发谷歌paypal官网登录入口