服务时间与线程数成正比

我的系统是带有超线程的i5-Dual核心。 Windows向我展示了4个处理器。 当我一次由单个线程运行单个优化的cpu绑定任务时,其服务时间始终显示为35ms。 但是,当我将2个任务同时切换到2个线程时,他们的服务时间显示为70毫秒。 我想问我的系统有4个处理器,那么为什么在2个线程运行teir任务的情况下服务时间是70,而2个线程应该在2个处理器上运行而没有任何调度开销。代码如下。 CPU绑定任务如下。 import java.math.BigInteger; public class CpuBoundJob implements Runnable { public void run() { BigInteger factValue = BigInteger.ONE; long t1=System.nanoTime(); for ( int i = 2; i <= 2000; i++){ factValue = factValue.multiply(BigInteger.valueOf(i)); } long t2=System.nanoTime(); System.out.println("Service Time(ms)="+((double)(t2-t1)/1000000)); } } 运行任务的线程如下。 public class TaskRunner extends Thread { CpuBoundJob job=new CpuBoundJob(); public […]

无法从静态上下文引用Java非静态方法addInv(int)

我很清楚这个错误然而这是我曾经难倒的一次。 我知道我不能从main方法中调用非静态变量,但这很令人困惑。 也许你可以帮忙吗? 该错误显示在addInv(1); 线… 码: import java.io.*; import java.util.*; import javax.swing.*; public class item { public static int attack, defense; public static ArrayList arr; public static String name, desc, typeOf, attackAdd, defenseAdd, canSell, canEat,earnedCoins,canEquip; String stats[]; public static void main(String args[]) { addInv(1); } public void addInv(int e) { String iname = getItem(1)[0]; String […]

LibGdx-ViewPort的宽度和高度与某些设备不匹配

我正在使用Viewport作为我的libGdx风景游戏。 public static final int WORLD_WIDTH = 1280; public static final int WORLD_HEIGHT = 800; camera = new OrthographicCamera(); float aspectRatio = Constants.WORLD_WIDTH / Constants.WORLD_HEIGHT; ViewPort viewPort = new FillViewport(WORLD_WIDTH * aspectRatio,WORLD_HEIGHT, camera); 我正在使用这个宽度和高度的所有位置。 它在除屏幕分辨率大于1300的设备之外的所有设备中都能正常工作。在分辨率高于1300的设备中,只有游戏的中间部分可见。我尝试使用拉伸视口来获得更高分辨率的设备,但它给出的是所有游戏元素都拉长了 如何让我的游戏在所有设备上运行良好?我需要更改视口吗?

JLabel setLocation不工作?

这是我写的代码: super(“Add contact”); setLayout(new FlowLayout()); IPAddress = new JLabel(“IP Address”); IPAddress.setLocation(1000, 100); ImageIcon ii=new ImageIcon(getClass().getResource(“Add.png”)); JLabel image = new JLabel(ii); image.setSize(100, 100); image.setLocation(500, 100); add(image); add(IPAddress); setSize(500,150); }

使用List数据填充数组

如何使用一个List提供的数据填充数组? 例如,我有一个带字符串的List: List l = new ArrayList(); l.add(“a”); l.add(“b”); l.add(“c”); 然后我想将这些数据复制到一个String数组中: String[] array = ?

在Java中传递一个类(“Country.class”)作为参数

我正在尝试创建一个接受User.class , User.class等参数的方法,并返回argument.count() 。 我将为此方法提供的所有可能类都从Model扩展,并使用count()方法。 我的代码: private static long countModel(Model clazz) { // there is other important stuff here, which prevents me from // simply by-passing the method altogether. return clazz.count(); } 被称为: renderArgs.put(“countryCount”, countModel(Country.class)); 然而,这根本不起作用。 我该怎么办?

有没有办法在我从Firebase对象转换的类中存储Key?

这是我的数据库: [x] database — > [+] students —–> [+] -KuGacomJymBwkcc7zlU (pushKey) ———–> Name – Jon ———–> Age – 21 我有Student.class: String name; String age; public Student(String Name, String Age) { this.name=Name; this.age=Age; } 我从firebase datasnapshot中读取了如下信息: Student newStudent = DataSnapshot.getValue(Student.class); 当我这样做时,我得到了名称和年龄,但我的问题是,如果有一种方法可以在Student类上存储ID(pushKey)而不添加将保存它的String并在firebase数据库上获取另一个字段。 谢谢你们。

我的代码在创建构造函数方面有什么问题?

我正在尝试创建一个Person类,其构造函数使用给定的参数启动实例变量,但是当通过主类创建新的person对象时,代码无法编译,因为Person构造函数不需要参数,但是我在构造函数中指定了四个。 我正在使用NetBeans 7.2.1 ..这是我的代码: public class Person { private String fName; private String mName; private String lName; private String dob; public void Person(String first, String middle, String last, String dateOfBirth){ fName = first; mName = middle; lName = last; dob = dateOfBirth; } public String getFirstName(){ return fName; } public String getMiddleName(){ return mName; } […]

检查ArrayList 是否包含字符串的一部分

假设我有一个ArrayList: 当我说arrayList.containsSubString(’string1’)时,我希望返回arrayList的第一个元素; 除了遍历arrayList每个元素并检查string1是否是该元素字符串的子字符串之外,怎么办呢?

Tokenizer,停止Word删除,用Java封装

我正在寻找一个类或方法,它需要长达100多个单词和标记的字符串,删除用于IR系统的停用词和词干。 例如: “那只肥胖的大猫,对’袋鼠’说’你最有趣的家伙’……” 标记器将删除标点符号并返回单词的ArrayList 停用词删除器会删除“the”,“to”等字样 词干将减少每个词的“根”,例如“最有趣”会变得有趣 提前谢谢了。