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

昆明网站开发兼职群线上推广怎么做

昆明网站开发兼职群,线上推广怎么做,深圳网站建设一条龙,网站系统分类有三种:分别是继承Thread类、实现Runnable接口、实现Callable接口。 第一种需要重写父类Thread的run()方法,并且调用start()方法启动线程。 class ThreadTask extends Thread {public void run() {System.out.println("看完⼆哥的 Java 进阶之路&a…

有三种:分别是继承Thread类、实现Runnable接口、实现Callable接口。

第一种需要重写父类Thread的run()方法,并且调用start()方法启动线程。

class ThreadTask extends Thread {public void run() {System.out.println("看完⼆哥的 Java 进阶之路,上岸了!");}public static void main(String[] args) {hreadTask task = new ThreadTask();task.start();	}
}

这种方法缺点是,如果ThreadTask已经继承了另外一个类,就不能继承Thread类了,因为Java不支持多重继承。

第二种需要重写Runnable接口的run()方法,并将实现类的对象作为参数传递给Thread对象的构造方法,最后调用start()方法启动线程。

class RunnableTask implements Runnable {public void run() {System.out.println("看完Java 进阶之路,上岸了!");}public static void main(String[] args) {RunnableTask task = new RunnableTask();Thread thread = new Thread(task);thread.start();}
}

这种方法的优点就是可以避免Java的单继承限制,并且更符合面向对象的编程思想,因为Runnable接口将任务代码和线程控制的代码解耦了。

第三种需要重写 Callable 接⼝的 call() ⽅法,然后创建 FutureTask 对象,参数为 Callable 实现类的对象;紧接着创建 Thread 对象,参数为 FutureTask 对象,最后调⽤ start() ⽅法启动线程。

class CallableTask implements Callable<String> {public String call() {return "看完Java 进阶之路,上岸了!";}public static void main(String[] args) throws ExecutionException, InterruptedException {CallableTask task = new CallableTask();FutureTask<String> futureTask = new FutureTask<>(task);Thread thread = new Thread(futureTask);thread.start();System.out.println(futureTask.get());}
}

一个8G的系统最多能创建多少个线程

理论上大约8000个

创建线程的时候,⾄少需要分配⼀个虚拟机栈,在 64 位操作系统中,默认⼤⼩为 1M,因此⼀个线程⼤约需要 1M 的内存。

但 JVM、操作系统本身的运⾏就要占⼀定的内存空间,所以实际上可以创建的线程数远⽐ 8000 少。

详细解释⼀下。

可以通过 java -XX:+PrintFlagsFinal -version | grep ThreadStackSize 命令查看 JVM 栈的默认⼤⼩。

其中 ThreadStackSize 的单位是字节,也就是说默认的 JVM 栈⼤⼩是 1024 KB,也就是 1M。

启动一个Java程序,你能说说里面有哪些线程吗?

首先是main线程,这是程序执行的入口。

然后是垃圾回收线程,它是⼀个后台线程,负责回收不再使⽤的对象。

还有编译器线程,⽐如 JIT,负责把⼀部分热点代码编译后放到 codeCache 中。

可以通过下面的代码检测:

class ThreadLister {public static void main(String[] args) {// 获取所有线程的堆栈跟踪Map<Thread, StackTraceElement[]> threads = Thread.getAllStackTraces();for (Thread thread : threads.keySet()) {System.out.println("Thread: " + thread.getName() + " (ID=" + thread.getId() +")");}}
}

结果如下所示:

Thread: Monitor Ctrl-Break (ID=5)
Thread: Reference Handler (ID=2)
Thread: main (ID=1)
Thread: Signal Dispatcher (ID=4)
Thread: Finalizer (ID=3)

简单解释下:

Thread: main (ID=1) - 主线程,Java 程序启动时由 JVM 创建。

Thread: Reference Handler (ID=2) - 这个线程是⽤来处理引⽤对象的,如软引⽤、弱引⽤和虚引⽤。负责清理被 JVM 回收的对象。

Thread: Finalizer (ID=3) - 终结器线程,负责调⽤对象的 finalize ⽅法。对象在垃圾回收器标记为可回收之前,由该线程执⾏其 finalize ⽅法,⽤于执⾏特定的资源释放操作。

Thread: Signal Dispatcher (ID=4) - 信号调度线程,处理来⾃操作系统的信号,将它们转发给 JVM 进⾏进⼀步处理,例如响应中断、停⽌等信号。

Thread: Monitor Ctrl-Break (ID=5) - 监视器线程,通常由⼀些特定的 IDE 创建,⽤于在开发过程中监控和管理程序执⾏或者处理中断。

http://www.dtcms.com/wzjs/134775.html

相关文章:

  • 广告公司网站(附falsh及源代码)在线优化网站
  • 用scala做的网站免费个人网站申请
  • 页面布局怎么设置什么叫优化
  • python如何做自己的网站整合营销理论主要是指
  • 石景山网站制作案例关键词seo如何优化
  • 电子商务网站建设的步骤一般为(搜索引擎优化名词解释
  • 网站建设与推广策划书晋江友情链接是什么意思
  • 免费扑克网站代码优势的seo网站优化排名
  • 怎样制作软件开发上海好的seo公司
  • 大学网站开发白云区新闻
  • 文章类网站选什么内容seo是指什么职位
  • 土巴兔这种网站怎么做站长seo综合查询
  • 外贸网站制作价格表关联词有哪些小学
  • 做网站哪个最好百度网页版下载
  • 儿童网站模板 html网络运营培训哪里有学校
  • 整形网站整站源码个人建网站的详细步骤
  • 嘉兴网站建设品牌升级制作app平台需要多少钱
  • 机关网站建设需求文档aso是什么意思
  • wordpress主页底端添加图seo商学院
  • 中山移动网站建设报价网站网上推广
  • 网站建设广金手指六六十四网络营销优秀案例
  • wordpress本地网站搭建整套课程seo英文
  • 网站项目签约典型十大优秀网络营销案例
  • 六安建设厅网站广告制作公司
  • 旅游电商网站有哪些爆款采集推广引流软件
  • 九江网站优化网站推广的工作内容
  • 怎么做有优惠券的网站成人职业技能培训班
  • dedecms可以做双语网站2022最火营销方案
  • 衡水企业做网站快手seo软件下载
  • 个人微信crm百度seo快速提升排名