java如何创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。求代码

Python012

java如何创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。求代码,第1张

package test 

import java.util.concurrent.ExecutorService 

import java.util.concurrent.Executors 

public class ThreadPoolExecutorTest { 

public static void main(String[] args) { 

ExecutorService fixedThreadPool = Executors.newFixedThreadPool(3) 

for (int i = 0 i < 10 i++) { 

final int index = i 

fixedThreadPool.execute(new Runnable() { 

public void run() { 

try { 

System.out.println(index) 

Thread.sleep(2000) 

} catch (InterruptedException e) { 

e.printStackTrace() 

}) 

}

因为线程池大小为3,每个任务输出index后sleep 2秒,所以每两秒打印3个数字。

定长线程池的大小最好根据系统资源进行设置。如Runtime.getRuntime().availableProcessors()

Java 常量,有2种意思:

第1种意思,就是一个值,这个值本身,我们可以叫它常量。

整型常量: 123实型常量:3.14字符常量: 'a'逻辑常量:true、false字符串常量:"helloworld"

第2种意思,表示不可变的变量,这种也叫常量,从语法上来讲也就是,加上final,使用final关键字来修饰某个变量,然后只要赋值之后,就不能改变了,就不能再次被赋值了。

扩展资料:

用英文单引号括起来的单个字符,例如:'a'、'字'。这是最常见的声明字符形式。

用英文单引号括起来的十六进制字符代码值来表示单个字符。其格式为:'uXXXX',其中u是约定的前缀(u是unicode的第一个字母),而后面的XXXX位4位十六进制数,是该字符在unicode字符集中的序号。

为了实现对字符信息的存储,人们将可能用到的字符排成一个有序的字符队列,这种由多个有序字符组成的集合称为“字符集-Charset”,而在计算机中世纪保存的是字符在字符集中的序号。

即一个二进制形式的整数。而到底采用1个还是多个字节以及具体如何来存储一个字符集的字符,这种相关的规定被称为“编码-Encoding”。

Java最初采用的是16位Unicode编码(UTF-16)来表示字符,无论序号大小,每个Java字符都占用定长的2B(16个二进制位),因此最多能表示65536个不同的字符,这只是粗略的说法,实际上如果采用变通的方式进行字符编码,UTF-16编码可以表示的字符远多于65536个。

参考资料来源:百度百科-Java字符

随便自己写个方便啊。

/**

* 获取定长的字符串

* @param str 原始字符串

* @param len 固定长度

* @param c 不够填充的字符

* @return 固定长度的字符串

*/

public static String getFixedLenString(String str, int len, char c) {

if (str == null || str.length() == 0){

str = “”

}

if (str.length() == len){

return str

}

if (str.length() >len){

return str.substring(0,len)

}

StringBuilder sb = new StringBuilder(str)

while (sb.length() <len){

sb.append(c)

}

return sb.toString()

}