小编Som*_*jit的帖子

echo和pipe在java命令行环境中的含义是什么?

这就是我在看的: echo "A B C D E F G H I" | java Subset 3

我真的不明白这里有什么|echo意味着什么.在阅读了一些堆栈溢出线程之后,我知道由于命令行参数不会转到System.in,echo有助于将它放在那里吗?(我对此真的有一个非常模糊的想法),并且|命令将"每个参数""逐个"提供给程序?

这很有吸引力,但是当我尝试在eclipse调试器中测试它们时,这就是我得到的:

在此输入图像描述

我期待一些特别的东西,但所有部分都只是像任何正常的论点那样去args [].这有点令人困惑.

java pipe echo

1
推荐指数
1
解决办法
4805
查看次数

餐饮哲学家:Chandy-Misra方法:它如何避免陷入僵局?

我正在尝试,但是一个问题:在wiki中,该算法的第3点说:

当一个带叉子的哲学家接收到一条请求消息时,如果它是干净的话,他会保留它,但是当它是脏的时候放弃它.如果他把叉子送过来,他会在这之前清理叉子

我试图理解为什么这不会导致死锁?如果一个哲学家有一个干净的叉子,并等待从邻近的餐馆/哲学家那里获得另一个干净的叉子,而他们也在等待叉子,这可以累积到一个死锁对吗?一个哲学家总是在等待另一个人的分叉?

ps:我是线程和并发的新手,把它作为一个学习项目.

编辑:给出叉子的实际位置,张贴此以询问叉子是否应该是可变的.pLeft,pRight是左右哲学家,fLeft和fRight是左右分叉.

private Fork giveFork(Philosopher diner) {
        Fork forkToGive;

        if (this.pLeft.equals(diner)) {
            // give left fork to left philosopher
            if (this.fLeft.isClean)
                forkToGive = null; // don't give
            else {
                forkToGive = new Fork(this.fLeft.id, true); // give the fork
            }

        } else if (diner.pRight.equals(this)) {
            // give right fork to right philosopher
            if (this.fRight.isClean)
                forkToGive = null;
            else {
                forkToGive = new Fork(this.fRight.id, true);
            }
        } else {
            // default value , i'm not yet sure …
Run Code Online (Sandbox Code Playgroud)

algorithm concurrency dining-philosopher

1
推荐指数
1
解决办法
1880
查看次数

确定三角形类型的简单程序给出了奇怪的结果

该程序检查简单的三角形类型:等边,等腰,直角等.但我得到了非常奇怪的结果.

我的代码:

#include <stdio.h>
#include <stdlib.h>
int comparator (const void * elem1, const void * elem2) {
    int f = *((float*)elem1);
    int s = *((float*)elem2);
    if (f > s) return 1;
    if (f < s) return -1;
    return 0;
}
void checkTriangles(float *num){
    float a = *num;
    float b = *(num + 1);
    float c = *(num + 2);

    if((a*a + b*b)==c*c){
        printf("right angled triangle");
    }
    else if(a==b || b==c || c==a){
        printf("isosceles triangle");
    }
    else if(a==b && b==c){
        printf("equilateral …
Run Code Online (Sandbox Code Playgroud)

c

0
推荐指数
1
解决办法
2023
查看次数

当本地jar包含与java库中的名称相同的类文件时会发生什么?

我的特殊情况处理了一个Point2D在我的项目中包含的本地jar中称为thats 的类,但是,我也注意到java有自己的Point2D内部java.awt.geom.我理解,对于这个特殊情况,因为我不导入java.awt.geom,所以当我写Point2D它将来自我自己的包?但是,如果我确实必须导入java.awt.geom或处于导入的位置,我在本地jar和java库中都有类似的命名类文件,那么会发生什么呢?

java

0
推荐指数
1
解决办法
60
查看次数

如何在scala中使toString()尾递归

我正在学习斯卡拉课程,我正在尝试那里教的东西.所以现在我遇到这个列表,他们称之为"ConsList"?我试图给它一个尾递归的toString()方法.我想我必须保留像累加器这样的东西,但我不知道该怎么做.任何帮助都感激不尽.

这是我试过的:

/** a non-empty element/node of the list */
class Cons[T](val head: T, val tail: List[T]) extends List[T] {
  def isEmpty = false;
  override def toString() = 
    if(tail.isEmpty) "{" + head + "}"
    else "{" + head + tail + "}"
}
Run Code Online (Sandbox Code Playgroud)

recursion scala

0
推荐指数
1
解决办法
217
查看次数

MySQL:使用 SUBSTRING 缩短列

我正在尝试这样做:

update student 
set student_name=SUBSTRING(student_name, 0, 8)
where student_name like 'MAX%';
Run Code Online (Sandbox Code Playgroud)

因此,我的目的是用原始内容的前 8 个字符更新该列。

但该student_name列被设置为空值。

为什么会发生这种情况?有人可以帮我解决这个问题吗

mysql

0
推荐指数
1
解决办法
29
查看次数

标签 统计

java ×2

algorithm ×1

c ×1

concurrency ×1

dining-philosopher ×1

echo ×1

mysql ×1

pipe ×1

recursion ×1

scala ×1