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

怎么快速搭建网站珠海市建设工程交易网

怎么快速搭建网站,珠海市建设工程交易网,做VIP视频网站赚钱,兰州网站推广排名一、多任务 现实中太多这样同时做多件事的例子了#xff0c;例如一边吃饭一遍刷视频#xff0c;看起来是多个任务都在做#xff0c;其实本质上我们的大脑在同一时间依旧只做了一件事情。 二、普通方法调用和多线程 普通方法调用只有主线程一条执行路径 多线程多条执行路径…一、多任务 现实中太多这样同时做多件事的例子了例如一边吃饭一遍刷视频看起来是多个任务都在做其实本质上我们的大脑在同一时间依旧只做了一件事情。 二、普通方法调用和多线程 普通方法调用只有主线程一条执行路径 多线程多条执行路径主线程和子线程并行交替执行 三、Process与Thread 说起进程就不得不说下程序。程序是指令和数据的有序集合其本身没有任何运行的含义是一个静态的概念。 而进程则是执行程序的一次执行过程它是一个动态的概念。是系统资源分配的单位 通常在一个进程中可以包含若干个线程当然一个进程中至少有一个线程不然没有存在的意义。线程是CPU调度和执行的单位 注意很多多线程是模拟出来的真正的多线程是指有多个cpu即多核如服务器。如果是模拟出来的多线程即使在一个cpu的情况下在同一个时间点cpu只能执行一个代码因为切换的很快所有就有同时执行的错觉。 四、核心概念 线程就是独立的执行路径 在程序运行时即使没有自己创建线程后台也会有多个线程如主线程gc线程 main()称之为主线程为系统的入口用于执行整个程序 在一个进程中如果开辟了多个线程线程的运行由调度器安排调度调度器是与操作系统紧密相关的先后顺序是不能人为的干预的 对同一份资源操作时会存在资源抢夺的问题需要加入并发控制 线程会带来额外的开销如cpu调度时间并发控制开销 每个线程在自己的工作内存互交内存控制不当会造成数据不一致 五、线程的创建 三种创建方式 继承Thread类 实现Runnable接口 实现Callable接口 一、Thread类 自定义线程类继承Thread类 重写run()方法编写线程执行体 创建线程对象调用start()方法启动线程 注意线程不一定立即执行CPU安排调度 //创建线程方式一继承Thread类重写run()方法调用start方法开启线程 //总结注意线程开启不一定立即执行由CPU调度执行 public class TestThread extends Thread{Overridepublic void run() {//run方法线程体for (int i 0; i 20; i) {System.out.println(我在看代码----i);}} ​public static void main(String[] args) {//main线程主线程 ​//创建一个线程对象TestThread testThread new TestThread();//调用start()方法开启线程testThread.start(); ​ ​for (int i 0; i 1000; i) {System.out.println(我在学习多线程---i);}} } 此处说明调用run()方法只是按照顺序简单执行run()方法而调用start()方法才会把线程交给调度器去调度执行 二、Runnalbe接口 定义MyRunnable类实现Runnable接口 实现run()方法编写线程执行体 创建线程对象调用start()方法启动线程 package day01; ​ /*** Author: Grace* Date: 2023/10/1 12:29* Description:*/ //创建线程方式2实现runnable接口重写run方法执行线程需要丢入runnable接口实现类调用start方法 public class TestThread02 implements Runnable{ ​Overridepublic void run() {//run方法线程体for (int i 0; i 20; i) {System.out.println(我在看代码----i);}} ​public static void main(String[] args) {//创建runnable接口的实现类对象TestThread02 testThread02 new TestThread02();//创建线程对象通过线程对象来开启我们的线程代理/* Thread thread new Thread(testThread02); ​thread.start();*/ ​new Thread(testThread02).start(); ​ ​for (int i 0; i 1000; i) {System.out.println(我在学习多线程---i);}} ​ } 小结 继承Thread类 子类继承Thread类具备多线程能力 启动线程子类对象.start() 不建议使用避免OOP单线程局限性 实现Runnable接口 实现接口Runnable具有多线程能力 启动线程传入目标对象Thread对象.start() 推荐使用避免单继承局限性灵活方便方便同一个对象被多个线程使用 三、实现Callable接口 实现Callable接口需要返回值类型 重写call方法需要抛出异常 创建目标对象 创建执行服务ExecutorService ser Executors.newFixedThreadPool(1); 提交执行FutureBoolean result1 ser.submit(t1) 获取结果boolean r1 result1.get() 关闭服务ser.shutdownNow() Callable的好处1.可以抛出异常 2.有返回值 六、初识并发问题 //多个线程同时操作同一个对象 //买火车票的例子 ​ ​ //发现问题多个线程操作同一个资源的情况下线程不安全数据紊乱 public class TestThread03 implements Runnable{ ​//票数private int ticketNums 10;Overridepublic void run() {while (true){if(ticketNums0){break;}//模拟延时try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();} ​System.out.println(Thread.currentThread().getName()--拿到了第ticketNums--票);}} ​public static void main(String[] args) {TestThread03 testThread03 new TestThread03(); ​new Thread(testThread03,小明).start();new Thread(testThread03,老师).start();new Thread(testThread03,黄牛党).start();} }
http://www.hkea.cn/news/14359206/

相关文章:

  • 有哪些可以做网站的企业网站设计 职业
  • 哪里可以做企业网站seo免费教程
  • 网站建设实训报告要求广西建设网查询
  • 网站怎么做修改门户网站建立流程
  • 杭州建站价格wordpress添加账户编辑是什么意思
  • 网站后台上传木马教程苏州浒关网站建设
  • vk网站做婚介动漫制作专业就业前景如何
  • 南京建设局网站深圳市网站制作最好的公司
  • 私人订制网站的建设的设计表河南高端网站
  • 湖北专业网站建设市面价优秀电子商务网站
  • 网站建设单位是什么网站的建设公司哪个好
  • 搜索引擎网站搭建建设银行个人网银登录入口
  • 网上书店网站开发代码惠通网站建设
  • 台州优化官方网站wordpress 目录样式
  • 南京玄武区建设局网站利用分类信息网站做推广
  • 网站设计分析案例鹰潭房产网站建设
  • 天津做系统集成的公司网站网站营销中常见问题
  • 一键免费创建论坛网站wordpress调用导航包含子菜单
  • 制作购物网站wordpress my vistors
  • 网站的企业风采怎么做wordpress创建数据库文件
  • 仿门户网站源码义乌网站建设优化案例
  • 国外 网站 设计塘沽网络公司
  • 域名做好了怎么做网站内容cute模板wordpress
  • vps怎么做网站c 做网站设计
  • 网站制作论文题目微网站搭建的步骤和技巧
  • 东莞服务公司网站建设网站建设毕业设计的分类号
  • 在网上做软件挣钱的网站襄阳seo推广
  • 企业商城网站多少钱软件工程师年薪多少
  • 做网站赔了8万建设婚纱摄影网站的费用
  • 网站建设松江平安区wap网站建设公司