E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
JAVA多线程
Java多线程
编程核心技术
多线程基础概念进程线程线程的调用的随机性:代码的运行结果与代码执行顺序或调用顺序是无关的.CPU以不确定的方式,或者说是以随机的时间来调用线程中的run方法线程启动顺序与start()执行顺序无关守护线程Daemon的作用是为其他线程的运行提供便利服务,守护线程最典型的应用就是GC线程实现方式继承Thread类实现Runnable接口线程安全共享变量:多个线程可访问同一个变量线程安全:获得的实例变
Aplha
·
2023-11-04 11:02
JMM 内存模型,volatile 实现原理
Java多线程
内存模型跟cpu缓存模型类似,是基于cpu缓存模型来建立的,Java内存模型是标准化的,屏蔽掉了底层不同计算机的区别。
程序媛青青
·
2023-11-03 23:23
java
jvm
开发语言
Java多线程
打辅助的三个小伙子
前言之前学多线程的时候没有学习线程的同步工具类(辅助类)。ps:当时觉得暂时用不上,认为是挺高深的知识点就没去管了..在前几天,朋友发了一篇比较好的Semaphore文章过来,然后在浏览博客的时候又发现面试还会考,那还是挺重要的知识点。于是花了点时间去了解一下。Java为我们提供了三个同步工具类:CountDownLatch(闭锁)CyclicBarrier(栅栏)Semaphore(信号量)这几
Java3y
·
2023-11-03 16:45
高并发、多线程、分布式都不懂,你拿什么跳槽阿里、腾讯、京东?
Java多线程
与高并发实战实践先来看看高并发多线程一些大厂并发面试题,看你能答出几道!(1)synchronized的CPU原语级别是如何实现的?
小课VIP
·
2023-11-03 13:29
java多线程
cas_
Java多线程
并发06——CAS与AQS
在进行更近一步的了解Java锁的知识之前,我们需要先了解与锁有关的两个概念CAS与AQS。关注我的公众号「Java面典」了解更多Java相关知识点。CAS(CompareAndSwap/Set)概念CAS函数,是比较并交换函数,它是原子操作函数。原理CAS是基于乐观锁的原理进行操作的。它总是认为自己可以成功完成操作。当多个线程同时使用CAS操作一个变量时,只有一个会胜出,并成功更新,其余均会失败。
weixin_39760295
·
2023-11-03 10:00
java多线程cas
Java多线程
----创建线程、线程池ExecutorService、异步编排
文章目录创建线程的四种方式方式一、继承Thread方式二、自定义实现Runnable接口方式三、Thread+FutureTask+Callable返回值方式四、线程池ThreadPoolExecutor线程池的简单介绍通过ThreadPoolExecutor创建自定义线程池ThreadPoolExecutor创建线程池的7大参数线程池处理任务的执行流程四种RejectedExecutionHan
IDOOY
·
2023-11-03 03:58
Java
java
多线程
线程池
并发编程
2019年高级Java程序员面试题汇总 施工中
目录JDKJVM基础知识事物线程池设计模式Strut2DubboZookeeperSpring系列Redis系列Mysql系列
Java多线程
消息中间件其他程序设计编程题面试技术外的问题引言:随着金九银十的到来
一只努力学习的弱鸡
·
2023-11-02 15:03
java并发编程之基础与原理1
java多线程
基础下面说一下线程的7种状态下面我重点来说一下阻塞状态阻塞状态是可以分很多种的:下面用另外一张图来说明这种状态简单说一下线程的启动原理下面说一下java中的线程java线程的异步请求方式上面就会先把
杨·戬
·
2023-11-02 12:56
并发编程
java
开发语言
Java多线程
同步问题的探究
众所周知,在
Java多线程
编程中,一个非常重要的方面就是线程的同步问题。关于线程的同步,一般有以下解决方法:1.在需要同步的方法的方法签名中加入synchronized关键字。
hlf48641715
·
2023-11-02 08:55
java
多线程
java
thread
string
jvm
虚拟机
JAVA多线程
带返回值进行拼接返回数据
多线程循环处理业务,并合并返回结果最近在做项目,外部接口调用本系统,发送过来2000+的数据需要当前系统处理业务,单线程处理耗时半小时左右,执行很慢,对方系统要求加快处理速度,所以想到了应用多线程的方式,处理完并将结果返回给调用系统,我这里分为两步,首先将集合每100个为一组分开,然后进行多线程处理,100条为一个处理通过百度获取到了以下信息可返回值的任务必须实现Callable接口,类似的,无返
weixin_38647584
·
2023-11-02 03:09
多线程
带返回值
java
ide
Java多线程
异步处理
1.异步执行无返回值CompletableFuturenoArgsFuture=CompletableFuture.runAsync(newRunnable(){@Overridepublicvoidrun(){System.out.println("***************");}});2.异步执行有返回值CompletableFuturereturnString=CompletableF
system_root
·
2023-11-02 03:38
Java8
java
java多线程
,主线程如何获取子线程的返回值
01主线程等待02join()Join()方法阻塞当前线程,以等待子线程执行完毕03通过Callable接口实现futureTask.get()会阻塞当前线程,直到子线程执行完毕当前线程才接着执行匿名内部类的写法Lamdba写法future.get()会阻塞当前线程,直到子线程执行完毕当前线程才接着执行匿名内部类的写法lambda写法
java架构师-太阳
·
2023-11-02 03:08
java
jvm
开发语言
Java多线程
获取异步执行结果的多种姿势
前言由于在大多数操作系统中java虚拟机的线程实现为内核级线程即真多线程的映射方式,因此在各个优秀的开源框架、服务容器中多线程技术使用非常广泛。我们自己的业务项目中,也经常遇到需要异步执行的任务,在不方便引入消息中间件的情况下,直接另开一个线程执行即可,但是如果遇到一些需要获取执行结果的业务,就只能为了多线程异步方式再引入线程间通信逻辑,便显得捉襟见肘。jdk1.5以后新引入了Future和Cal
最爱彩虹糖
·
2023-11-02 02:33
Java
java
java多线程
异步处理并获取处理后的返回值
示例部分代码:Stringparam="hello"//举例用的线程池,一般建议自定义线程池ExecutorServiceexecutorService=Executors.newFixedThreadPool(5);CompletionServicecompletionService=newExecutorCompletionService(){@OverridepublicIntegercal
比利Billy_
·
2023-11-02 02:02
java技术
java
Java多线程
面试题整理(BATJ都爱问)
今天给大家总结一下,面试中出镜率很高的几个多线程面试题,希望对大家学习和面试都能有所帮助。备注:文中的代码自己实现一遍的话效果会更佳哦!一、面试中关于synchronized关键字的5连击1.1说一说自己对于synchronized关键字的了解synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执
老刘2021111
·
2023-11-01 18:37
java多线程
java多线程面试题
java多线程
面试题
1.创建线程有哪几种方式?参考答案创建线程有三种方式,分别是继承Thread类、实现Runnable接口、实现Callable接口。通过继承Thread类来创建并启动线程的步骤如下:定义Thread类的子类,并重写该类的run()方法,该run()方法将作为线程执行体。创建Thread子类的实例,即创建了线程对象。调用线程对象的start()方法来启动该线程。通过实现Runnable接口来创建并启
poordicky
·
2023-11-01 18:34
Java多线程
面试
java
多线程
210822:oracle数据库编码格式-集合中存放对象的id提取成List
-
JAVA多线程
中join()方法的详细分析-map转换成JSON的方法-修改yml文件后启动报错-L...
集合中存放对象的id提取成ListListcollect=all.stream().map(SlxfAppMenuConfig::getId).collect(Collectors.toList());三.
JAVA
弹钢琴的崽崽
·
2023-11-01 12:58
Java多线程
之 理解重排序
顺序一致性模型什么是顺序一致性模型?简单来说就是代码的执行顺序和代码的编写顺序是一致的。这样的好处就是结果是一致正确的。这也是符合冯诺依曼体系的。但是现代的多核心处理器没有采用这种结构,因为这个模型最大的问题就是相当于没有做任何优化。导致效率是非常低的,而现代多核心处理器的优化方式就是重排序。重排序什么是重排序?重排序就是CPU优化代码的一种手段。替代指令的执行性能。主要有三种类型的重排序。1.编
ScottePerk
·
2023-11-01 09:49
多线程
多线程
Java多线程
面试题
线程基础1、现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?这个线程问题目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用join方法实现。2、在java中wait()和sleep()方法的不同?最大的不同是在等待时wait()会释放锁,而sleep()一直持有锁。wait()通常被用于线程间交互,sleep()通常被用于暂停执行。3、
江东话王
·
2023-10-31 17:31
java
jvm
面试
Java多线程
(单例模式、堵塞队列、定时器)
Java多线程
一、单例模式饿汉模式懒汉模式针对单例模式的线程安全要点:二、堵塞队列实现BlockingQueue三、定时器一、单例模式单例模式是一种设计模式,针对一些特定的场景,研究出对应的解决方案,。
caiyec
·
2023-10-31 08:28
web
Java面试复习总结15——
Java多线程
目录Java中的线程Java线程状态机一个线程的生命周期
Java多线程
实战多线程的实现线程状态转换JavaThread常用方法Thread#yield():Thread.interrupt():Thread
Slayer_Zhao
·
2023-10-31 05:33
Java面试
Java线程池的任务消息队列
多线程队列
Java多线程
包括线程池会用到缓存任务的队列,Java提供的线程安全队列分为两种:阻塞队列和非阻塞队列1.阻塞队列阻塞队列支持生产者模式和消费者模式互相等待,队列为空,消费线程阻塞,直到队列不为空
一笑杯莫停
·
2023-10-30 20:00
并发编程
消息队列
java
jvm
开发语言
Java多线程
面试题总结
线程的生命周期,线程有哪些状态线程通常有五种状态,创建,就绪,运行,阻塞和死亡状态阻塞的情况又分为三种(1)等待阻塞:运行的线程执行wait方法,该线程会释放占用的所有资源,JVM会把该线程放入"等待池"中.进入这个状态后,是不能自动唤醒的,必须依靠其他线程调用notify或notifyAll方法才被唤醒,wait是object类的方法(2)同步阻塞:运行的线程在获取对象的同步锁时,若该同步锁被别
Xqhardstudy
·
2023-10-30 20:55
计算机总复习
多线程
JAVA多线程
相关
本文记录
java多线程
相关的知识,部分资源来自于网络,大部分是基于本人对多线程的理解,而进行的总结。
wh柒八九
·
2023-10-30 20:17
并发编程
多线程
java
Java多线程
:Java中的锁
Java中的锁1、Lock接口锁是用来控制多个线程访问共享资源的方式使用synchronized关键字将会隐式地获取锁,但是它将锁的获取和释放固化了,也就是先获取再释放在finally块中释放锁,目的是保证在获取到锁之后,最终能够被释放Lock接口提供的synchronized关键字不具备的主要特性:Lock的API:2、队列同步器队列同步器AbstractQueuedSynchronizer是用
邋遢的流浪剑客
·
2023-10-30 18:04
Java中的锁
Java多线程
Java多线程
:Java中15种锁的介绍
1、公平锁/非公平锁1)、公平锁:公平锁是指多个线程申请锁的顺序来获取锁2)、非公平锁:非公平锁是指多个线程获取锁的顺序并不是按照申请锁的顺序,有可能申请的线程比先申请的线程优先获取锁。有可能,又造成优先级反转或者饥饿现象对于ReentrantLock而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。非公平锁的优点在于吞吐量比公平锁大对于Synchronized而言,是一种非公平锁。由于其不
邋遢的流浪剑客
·
2023-10-30 18:34
Java多线程
锁
Java多线程
学习(三)——synchronized(下)
synchronized同步语句块用关键字synchronized声明方法是有弊端的。比如线程A调用同步方法执行一个长时间任务,那么线程B就要等较长时间才能调用。下面看一个例子:publicclassTask{privateStringgetData1;privateStringgetData2;publicsynchronizedvoidlongTimeTask(){try{System.out
xiaosen一L
·
2023-10-30 13:11
使用Redis中间件解决商品秒杀活动中出现的超卖问题(使用
Java多线程
模拟高并发环境)
一、引入Jedis依赖可以新建Spring或Maven工程,在pom文件中引入Jedis依赖:redis.clientsjedis2.9.0二、Jedis工具类JedisUtil.java三、秒杀测试类(代码模拟多用户+高并发)RedisSecKiller.java注:关于多线程部分代码的说明传统的方式是使用newThread来创建、运行(start)线程,但那样太低效了;使用定长线程池+Exec
java成功之路
·
2023-10-30 12:41
Java多线程
之单例模式在多线程环境下的安全问题
Java多线程
之单例模式在多线程环境下的安全问题目录:单例模式基本概念单线程下的单例模式多线程下的单例模式单例模式volatile分析1.单例模式基本概念基本概念转载自:单例模式|菜鸟教程单例模式(SingletonPattern
Lumos`
·
2023-10-30 12:30
Java多线程
java
单例模式
多线程
volatile
Java多线程
- 线程池
经常创建和销毁、使用量特别大的资源,比如并发情况下的线程,对性能影响很大。提前创建好多个线程,放入线程池中,使用时直接获取,使用完放回池中,可以避免频繁创建销毁、实现重复利用。类似生活中的公共交通工具。好处提高响应速度(减少了创建新线程的时间)降低资源消耗(重复利用线程池中线程,不需要每次都创建)便于线程管理corePoolsize:核心池的大小maximumPoo|size:最大线程数keepA
honvin_
·
2023-10-30 08:52
#
多线程
Java多线程
线程池
Java多线程
4--线程池--Callable方法
1、主要流程、例子如下packagechen.thread.demo2;importjava.util.concurrent.*;//线程创建方式三:实现callable接口//callable的好处//1.可以定义返回值//2.可以抛出异常//publicclassTestCallThreadimplementsCallable{privateStringname;publicTestCallT
chencaw
·
2023-10-30 08:52
java
java多线程
高并发
“高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则高并发≠多线程多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现一,高并发与多线程1,高并发:高并发不是JAVA的专有的东西,是语言无关的广义的,为提供更好互联网服务而提出的概念。高并发想让服务器(tomcat)能接受处理多用户多请求。2,多线程:多线程只是为了达到高并发目的(首先得有多线程接
程序大视界
·
2023-10-30 08:20
Java多线程
之wait和notify详解以及实现阻塞队列
文章目录一、wait()和notify()Condition二、阻塞队列JDK中的BlockingQueue自己实现一个阻塞队列提示:以下是本篇文章正文内容,Java系列学习将会持续更新一、wait()和notify()wait() 一旦执行此方法,当前线程就进入阻塞状态,期间会释放同步监视器(锁)。notify() 一旦执行此方法,就会唤醒被wait的一个线程,如果多个线程被wait,就随机
一只咸鱼。。
·
2023-10-29 20:23
Java多线程与并发
java
面试
开发语言
40个
Java多线程
问题总结
前言个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些问
raysonfang
·
2023-10-28 23:13
Java多线程
示例:4个售票员卖1000张火车票
//售票员importjava.util.Iterator;importjava.util.Map;publicclassTicketSalerimplementsRunnable{privateMapticketMap;//票池privateStringsalerName;//售票员姓名publicTicketSaler(MapticketMap,StringsalerName){this.ti
栩风
·
2023-10-28 22:34
JAVA
多线程
java
thread
string
import
class
Java多线程
(二)——Volatile关键字保证可见性,有序性,禁止指令重排实现
一、特性1、保证线程可见性2、保证线程有序性3、禁止指令重排在内存模型层面,如果给一个变量加上volatile,就说明这个变量是可见的,每次修改完读的时候都是从主内存中读的,也就是说每次修改完都存盘了,而不再是存缓存,供本线程自身可见。加上volatile也就避免了线程从自己的工作内存中查找变量的值,必须到主存中获取他的值,线程操作volatile变量都是直接操作内存。那么系统如何保证数据的可见性
似水流年,是谁苍白了等待
·
2023-10-28 14:23
Java
多线程
Java自学视频整理
1.Java基础视频《张孝祥JAVA视频教程》完整版[RMVB](东西网)历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播客)张孝祥2010年贺岁视频:Java高新技术(传智播客)
Java
空中海
·
2023-10-28 01:18
【java 多线程实现pdf打包成zip下载】
java多线程
实现pdf打包成zip下载问题情境:最近一个需求是需要在某个逻辑中处理2000多条数据,并且生成pdf打包成zip进行下载,之前是量不多,是同步for循环进行生成pdf然后打包下载,目前由于要与
睁开眼睛去看这个世界
·
2023-10-27 23:20
pdf
2021/11/25 北京
java多线程
(二)--- synchronized、对象布局、synchronized锁升级
我们写的程序,最后是会扔在多线程环境下运行的,数据安全才是重中之重。线程安全问题会直接导致数据异常,从而影响业务功能的正常使用,所以这个问题还是非常严重的。线程安全案例(银行取款)1、账户类Account创建一个银行账户类Account:Balance直译:平衡;余额;publicclassAccount{privateStringactno;//账号privatedoublebalance;//
£小羽毛
·
2023-10-27 17:30
笔记
java
开发语言
后端
【
java多线程
】对象头、synchronized锁的升级、monitor
很久之前写的一篇文章,简单整理了下发表出来。整理的不够好,但是内容很充分很多内容是长期积累的舍不得删了,读者尽量把前面的看懂吧。源码部分可忽略一、对象头在JVM中,对象在内存中分为三块区域:对象头:标记字段和类型指针。一会介绍实例数据:这部分主要是存放类的数据信息,父类的信息。对齐填充:由于虚拟机要求对象起始地址必须是8字节的整数倍,填充数据不是必须存在的,仅仅是为了字节对齐。HotSpot虚拟机
hancoder
·
2023-10-27 17:57
多线程
对象头
synchronized
monitor
偏向锁
轻量级锁
java多线程
、ThreadLocal与Synchronized区别
一、多线程1、什么是线程?进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程.进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高.线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位.同一进程中的多个线程之间可以并发执行。2、线程和进程有什么区别?线程是进程的子集,一个进程可以有很多线程,每条线程
young5201314
·
2023-10-27 16:13
JAVA面试知识总结
Java多线程
- thread.interrupt()并不能强制停止线程
记录一个小经验Thread#interrupt方法到底是不是暴力停止一个线程呢?答案:否我们用以下代码为例:Main.java:publicclassMain{publicstaticvoidmain(String[]args)throwsInterruptedException{Threadt=newMyThread();t.start();Thread.sleep(5);t.interrupt
Final Dev
·
2023-10-27 15:39
笔记
java
开发语言
Java并发编程之深入理解线程池原理及实现
因此,基于线程池的需求背景、技术要求了解线程池原理和实现,一方面可以更为深刻理解
Java多线程
开发,有助于解决业务系统中因为线程问题所产生的bug;另一方面也有利于对遗留代码的重构。
weixin_34132768
·
2023-10-27 14:47
java
设计模式
数据结构与算法
Java多线程
系列--“JUC线程池”03之 线程池原理(二)
概要在前面一章"
Java多线程
系列--“JUC线程池”02之线程池原理(一)"中介绍了线程池的数据结构,本章会通过分析线程池的源码,对线程池进行说明。
weixin_30402343
·
2023-10-27 14:46
java
数据库
数据结构与算法
Java多线程
:并发编程(三)
一、进程和线程区别?进程:进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1–n个线程。(进程是资源分配的最小单位)。线程:一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也
刻苦的刘同学
·
2023-10-27 10:45
多线程
java
探讨
Java多线程
调度:如何实现两线程并行,一线程等待?
亲爱的小伙伴们,大家好!我是小米,很高兴再次和大家分享一些关于Java编程的有趣技巧和知识。今天,我们将探讨一个有趣且常见的面试问题:如何让两个线程同时执行,而第三个线程必须等待前两个线程结束后才能开始执行呢?这是一个非常实用的问题,也是我们在多线程编程中常常需要解决的情况。在本文中,我将向大家介绍几种方法,让你轻松掌握这个技巧。无需担心,我将尽量以简单明了的方式来解释,让大家能够轻松理解并应对这
知其然亦知其所以然
·
2023-10-27 10:59
博客搬家
java
开发语言
面试
1024程序员节
JAVA多线程
编程之异步
日常开发中我们在一个接口中需要处理多个任务,通常都是串行的,这样导致接口的响应时间是每个任务的执行时间的总和。为了缩短响应时间,通常会使用异步处理多任务。需求举例:查询书籍基本信息,书籍详细信息,作者信息并将结果数据返回。假设查询书籍基本信息花费500毫秒,查询书籍详细信息花费500毫秒,查询作者信息花费500毫秒,共计1500毫秒,使用异步处理时间一般都是远小于1500毫秒的。下面使用异步调用方
l_learning
·
2023-10-26 23:28
中间件
Future
异步任务
并发编程
高并发
多线程编程
Java多线程
基础-8:单例模式及其线程安全问题
单例模式是经典的设计模式之一。什么是设计模式?代码的设计模式类似于棋谱,棋谱就是一些下棋的固定套路,是前人总结出来的一些固定的打法。依照棋谱来下棋,不说能下得非常好,但至少是有迹可循,不会下得很糟糕。代码的设计模式也是一样。设计模式,就是软件开发中的棋谱。一些编程界的大佬,针对一些常见情景总结出了一些代码的“编写套路”。按照这样的套路来写代码,不说能写得非常好,但也至少不会写得太糟糕。以前有一个大
碳基肥宅
·
2023-10-26 23:15
#
SSM
Java
java
单例模式
开发语言
线程安全
多线程编程
volatile和synchronized的区别
为了更好的理解两者区别我们首先需要了解以下知识
java多线程
中的原子性、可见性、有序性1.原子性:是指线程的多个操作是一个整体,不能被分割,要么就不执行,要么就全部执行完,中间不能被打断。
e505dd779611
·
2023-10-26 23:23
Java多线程
秘籍,掌握这5种方法,让你的代码优化升级
介绍5种多线程方法,助您提高编码效率!如果您的应用程序与那些能够同时处理多个任务的应用程序相比表现不佳,很可能是因为它是单线程的。解决这个问题的方法之一是采用多线程技术。以下是一些可以考虑的方法:线程(Thread)并行流(ParallelStreams)ExecutorServiceForkJoinPoolCompletableFuture适当地使用这些方法,可以彻底改变您的应用程序,并推动您的
技术琐事
·
2023-10-26 15:15
java
后端
java-ee
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他