GVKun编程网logo

Java可以与System V linux消息队列交互吗?(java操作linux 交互)

17

针对Java可以与SystemVlinux消息队列交互吗?和java操作linux交互这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展C#交互式窗口可以与我的代码交互吗?、java–Syst

针对Java可以与System V linux消息队列交互吗?java操作linux 交互这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展C# 交互式窗口可以与我的代码交互吗?、java – System.exit在Linux上不是线程安全的吗?、java: “final” System.out, System.in and System.err?、java中System.out.print()与System.out.println()与System.out.printf()的差别等相关知识,希望可以帮助到你。

本文目录一览:

Java可以与System V linux消息队列交互吗?(java操作linux 交互)

Java可以与System V linux消息队列交互吗?(java操作linux 交互)

我需要从shell脚本 (从基于Linux的应用程序调用)传递信息到Java应用程序。

命名pipe道是一种痛苦,因为我不能考虑在pipe道的读/写结束时考虑到复杂的后果,所以不能启动/停止任何服务。

套接字是非常困难的,因为如果重新启动监听过程没有排队机制,并且简单的实现需要不断创build新的套接字(否则shell脚本将变得非常复杂,带有check-and-restart-socket和排队代码)。

我最近正在读这些System V / POSIX linux消息队列 。 我正在运行Fedora 12,想知道是否有一种很好的方法来configuration这些消息队列并从Java与它们进行交互

有可能在linux中打开消息队列的元素数量巨大?

使用Nginx + pushstream模块进行长轮询可能会丢失消息吗?

POSIX消息队列 – 重启后它是否仍然存在?

mq_open:无效的参数

用Mono发送窗口消息

在C中使用单个消息队列是双向通信

在控制台应用程序中挣扎着一个空的Windows消息队列

MSMQ中的多个队列(性能下降)

mq_open err否13权限被拒绝

Linux上的系统V消息队列无法正常工作

你不能直接使用它们,你必须做一些JNI的巫术来把它们连接起来。

你有什么问题与管道? Java将这些视为普通文件。 我没有广泛使用它们,但是我没有使用管道的问题。 如果生产者跟不上的话,管道读取器需要不断地重新打开管道。

但是如果任何一方都失败了,另一方则会阻止另一方的恢复。

你只需要小心从管道读取缓冲区。 如果您从管道中读取缓冲区,然后失败,那么数据将丢失。

C# 交互式窗口可以与我的代码交互吗?

C# 交互式窗口可以与我的代码交互吗?

在 Visual Studio 2015 或更高版本中,我可以打开“C# 交互窗口”并运行代码:

> 5 + 38

那很可爱。现在我如何与 我的代码 的类进行交互?假设我有一个打开的项目。

> new Cog()(1,5): error CS0246: The type or namespace name ''Cog'' could not be found (are you missing a using directive or an assembly reference?)

答案1

小编典典

在 2015 年至 2022 年期间使用 Visual Studio 时:

您可以通过导航到Views > Other Windows > C# Interactive打开 Interactive 窗口,

然后只需右键单击您的项目并从上下文菜单中运行 Initialize Interactive with Project 。


对于旧版本:

要在代码中使用 C# 交互窗口,请确保首先编译代码,然后使用如下#r命令添加对生成的程序集的引用:

C# 命令提示符


您也可以使用即时窗口与您的代码进行交互,如下所示:

即时窗口

java – System.exit在Linux上不是线程安全的吗?

java – System.exit在Linux上不是线程安全的吗?

我刚刚从Oracle JDK 1.6切换到Open JDK 1.7.0_03,并且在退出时遇到了相当显着的死锁:

java.lang.Thread.State: WAITING (on object monitor)
 at java.lang.Object.wait(Native Method)
 at java.lang.Thread.join(Thread.java:1258)
 - locked <0x8608dda0> (a sun.awt.X11.XToolkit$1$1)
 at java.lang.Thread.join(Thread.java:1332)
 at java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:106)
 at java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)
 at java.lang.Shutdown.runHooks(Shutdown.java:123)
 at java.lang.Shutdown.sequence(Shutdown.java:167)
 at java.lang.Shutdown.exit(Shutdown.java:212)
 - locked <0x8603df28> (a java.lang.class for java.lang.Shutdown)
 at java.lang.Runtime.exit(Runtime.java:107)
 at java.lang.System.exit(System.java:960)

您似乎必须从AWT事件队列中调用System.exit.这是真的吗? Sun docs Runtime.exit中没有线程要求的文档

我遇到了其他令人惊讶的情况,只有在Linux上才能获得AWT树锁,但是这个需要蛋糕.这是一个错误,还是我错过了文档中的内容?

最佳答案
这取决于,runHooks方法将启动通过Runtime.addShutdownHook注册的任何钩子线程并等待它们完成.如果你的任何钩子线程都锁定了AWT事件线程所需的一些资源,它们可能会导致死锁.

如果你必须在你的AWT事件线程中调用System.exit,我建议你在另一个线程中调用它:

 new Thread(){
            public void run() {
                System.exit(0);
            }
   }.start();

java: “final” System.out, System.in and System.err?

java: “final” System.out, System.in and System.err?

System.out声明为public static final PrintStream out

但是你可以致电System.setOut()重新分配它。

??如果是这样怎么可能final

System.in和适用于System.err

更重要的是,如果你可以对public static final字段进行突变,那么就可以为final你提供的保证(如果有)意味着什么?(我从未意识到,也没想到System.in/out/err表现为final变量)

java中System.out.print()与System.out.println()与System.out.printf()的差别

java中System.out.print()与System.out.println()与System.out.printf()的差别

System.out.print()与System.out.println()与System.out.printf()的差别
1.System.out.print():
输出不换行,比如:
System.out.print("a"); System.out.print("b"); 结果: ab

2.System.out.println():
输出后换行,比如:
System.out.println("a");
System.out.println("b");
结果:
a
b

3.System.out.printf()

输出格式化

样例:

public static void main(String[] args){
   for(int i = 0;i<8;i++{
      for(int j= 1;i<10;j ++)
      {
         System.out.printf("%5d",i*j);
       }
       System.out.println();
     }
}

 

输出结果:

 

 

 

倘若使用System.out.print(ln)格式就出现了明显错误,如下:

 

 

 

System.out.printf ()的基本格式:

     格式控制符以一个%开始,一个字母结束,字母规定了方法按照何种方式打印这个值,例如d表示十进制整数(int),f表示浮点数(double).

例如:int x=12,y=10;

System.out.printf("(%d,%d)",x,y);

输出结果:

 

 

 

%d代替后面的参数,格式字符串中的格式控制字符的个数必须与后面提供的参数个数相匹配。

                                     常用格式控制符:

%d 整数 %8d 整数,右对齐,输出高度为8 %-6d 整数,左对齐,输出高度为6 %f 浮点数 %8f 浮点数,右对齐,输出高度为8 %.2f 浮点数,精确到百分位 %16.3 浮点数,精确到千分位,输出高度为16 格式控制字符 结果


                                      string同理,把d换成s

 

关于Java可以与System V linux消息队列交互吗?java操作linux 交互的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于C# 交互式窗口可以与我的代码交互吗?、java – System.exit在Linux上不是线程安全的吗?、java: “final” System.out, System.in and System.err?、java中System.out.print()与System.out.println()与System.out.printf()的差别等相关知识的信息别忘了在本站进行查找喔。

本文标签: