多线程3.18

1.

Runnable和Callable之间的区别 

Runnable和Callable之间的区别

1、Runnable任务执行后没有返回值;Callable任务执行后可以获得返回值

2、Runnable的方法是run(),没有返回值;Callable的方法是call(),有返回值

3、Runnable的run()方法不能抛异常,有异常的话只能在run方法里面解决;Callable的call()方法可以抛异常

4、Runnable可以直接传递给Thread对象执行;Callable不可以,Callable执行可以放在FutureTask中,然后把futureTask传递给Thread执行

Runnable和Callable之间的区别 - 劈天造陆 - 博客园

2.4中创建线程方式的区别

1、继承Thread类
2、实现Runnable接口
3、实现Callable接口
4、创建线程池

实现Runnable和实现Callable接口的方式基本相同,不过前者线程执行体run()方法无返回值,而后者执行call()方法有返回值,因此可以把这两种方式归为一种这种方式与继承Thread类的方法之间的差别如下:

1、线程只是实现Runnable或实现Callable接口,还可以继承其他类。

2、这种方式下,多个线程可以共享一个target对象,非常适合多线程处理同一份资源的情形。

3、但是编程稍微复杂,如果需要访问当前线程,必须调用Thread.currentThread()方法。

4、继承Thread类的线程类不能再继承其他父类(Java单继承决定)。

5、前三种的线程如果创建关闭频繁会消耗系统资源影响性能,而使用线程池可以不用线程的时候放回线程池,用的时候再从线程池取,项目开发中主要使用线程池
 

### Ubuntu系统中安装CMake 3.18 #### 使用预编译二进制文件安装CMake 3.18 对于希望快速部署而不涉及源码编译的用户来说,采用官方发布的预编译二进制文件是一种高效的方法。 通过命令行工具`wget`获取指定版本的压缩包: ```bash wget https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.tar.gz ``` 接着利用`tar`指令来解压该档案至合适的位置,比如`/opt`目录下以便于管理和维护: ```bash sudo mkdir -p /opt/cmake-3.18.0 && \ tar --strip-components=1 -xzvf cmake-3.18.0-Linux-x86_64.tar.gz -C /opt/cmake-3.18.0/ ``` 为了使全局环境能够识别新的CMake路径,建立符号链接指向实际可执行程序所在位置: ```bash sudo ln -sf /opt/cmake-3.18.0/bin/* /usr/local/bin/ ``` 验证安装成功与否可通过查看当前使用的CMake版本号确认: ```bash cmake --version ``` 如果一切正常,则应显示为所期望安装的目标版本信息[^4]。 #### 编译安装CMake 3.18 另一种方法是从源代码开始构建并安装特定版本。此过程适用于那些想要自定义配置选项或是需要针对特殊需求调整软件特性的开发者们。 首先同样要下载目标版本对应的源码包;之后按照常规流程完成解压操作: ```bash tar -xf cmake-3.18.6.tar.gz cd cmake-3.18.6 ``` 启动引导脚本以准备后续编译工作,并指定期望安装的目的地以及其它必要的参数设置: ```bash ./bootstrap --prefix=/usr/local ``` 运行多线程模式下的GNU Makefile编译器加速整个过程,假设机器具备至少八核处理器的话可以这样写: ```bash make -j8 ``` 最后一步就是正式把生成的结果复制到系统的标准库内: ```bash sudo make install ``` 再次测试已安装实例是否正确无误地处于预期状态之下: ```bash cmake --version ``` 此时应当返回刚刚手动装配的那个确切编号的信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值