小编maw*_*wia的帖子

AF_UNIX域 - 为什么只使用本地文件名?

在UNIX域中使用套接字时,建议对本地磁盘上安装的目录目录使用路径名.UNIX域仅允许进程在同一台机器上进行通信.

你能解释一下上面这行吗?它是关于UNIX DOMAIN中的套接字.

谢谢!

unix sockets

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

通过多个类加载器获得的类实例

我正在读这篇文章,它说:

如果我们有两个由这些CustomClassLoader加载的Student类实例,例如student1和student2,那么student1和student2不是类型兼容的.换一种说法,

学生3 =(学生)学生2;

将抛出ClassCastException,因为JVM将这两者视为独立的,不同的类类型,因为它们由不同的ClassLoader实例定义.

现在我明白了它想传达的内容:那就是如果我们通过使用两个不同的类加载器加载相同的类然后它们将不是类型兼容的.所以很好.

但它使用的例子让我感到困惑,即

学生3 =(学生)学生2;

当我们声明像Student student这样的引用变量时,编译器所寻找的是这个Studnet是否符合其包结构的正确位置.现在我们在运行时将这个引用变量分配给一个真实的加载类,我们用来加载上述类的类加载器真的很重要吗?我怀疑,因为根据我的理解,类加载器只有在我们执行'new'或者我们在其上调用静态字段时才会起作用而不是当我们简单地声明它的一种类型.

请在此澄清我,并帮助我纠正我对这方面的理解.

谢谢,Mawia

java classloader

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

Quartz-scheduler DB Lock Exception

我们有一个使用Quartz安排一些工作的应用程序.它使用JDBCJobstore来保存与作业相关的元数据.

到目前为止,它一直在使用在quartz.properties中定义的数据源.但根据即将到来的要求,我们计划从quartz.properties中移出数据源,并将其作为SchedulerFactoryBean数据源属性的一部分提供.

 org.springframework.scheduling.quartz.SchedulerFactoryBean
Run Code Online (Sandbox Code Playgroud)

根据SchedulerFactoryBean 文档:

使用持久性作业时,强烈建议在Spring管理(或纯JTA)事务中对Scheduler执行所有操作.否则,数据库锁定将无法正常工作,甚至可能会中断

及其数据源属性docs说:

因此,强烈建议在Spring管理(或普通JTA)事务中对Scheduler执行所有操作.否则,数据库锁定将无法正常工作,甚至可能会中断

好吧,就我而言,它正在打破.文档的意思是" 在Spring管理(或普通JTA)事务中执行调度程序上的所有操作 ".

我们提供的数据源没有在其他任何地方使用.Quartz.properties看起来像这样:

    org.quartz.scheduler.instanceName = JobScheduler
    org.quartz.scheduler.instanceId = pcmlScheduler
    org.quartz.plugin.shutdownHook.class=org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownHook.cleanShutdown = true

     org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
     org.quartz.threadPool.threadCount =  2
     org.quartz.threadPool.threadPriority = 4

     org.quartz.jobStore.misfireThreshold = 5000
     org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
     org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
     org.quartz.jobStore.tablePrefix = QRTZ_
Run Code Online (Sandbox Code Playgroud)

如果我能得到一个上下文究竟是什么交易引用我可以进一步将数据库锁BreaK归零:

 Failure obtaining db row lock: No row exists in table QRTZ_LOCKS for lock named: TRIGGER_ACCESS [See nested exception: java.sql.SQLException: No row exists in table QRTZ_LOCKS for lock named: TRIGGER_ACCESS]
Run Code Online (Sandbox Code Playgroud)

确实,QRTZ_LOCKS没有任何行,但它应该是石英头痛来管理它.它管理得很好,在quartz.properties中提供数据源时工作得很好.

更新:从石英论坛,得到了这个问题的副本,根据建议,将以下行添加到QRTZ_LOCKS解决问题.

  INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

java quartz-scheduler spring-roo

6
推荐指数
0
解决办法
6864
查看次数

C中较大的整数到较小的无符号类型转换

我是通过k&r进行的.我在第197页(第A6节)中理解了以下几行的问题

积分转换:通过查找与该整数一致的最小非负值,将任何整数转换为给定的无符号类型,模数比可以在无符号类型中表示的最大值多一个.

任何机构都可以对此进行详细解释.谢谢

c

5
推荐指数
2
解决办法
2242
查看次数

指定的初始化器和省略的元素

任何人都可以解释有关指定初始化器的以下内容:

初始化列表可以省略在聚合中的任何位置声明的元素,而不是仅在末尾.

c

5
推荐指数
2
解决办法
1091
查看次数

ObjectOutputStream 受到打击

一个负责在套接字上写入(大量数据,大约 4-5MBPS)的线程卡住了,有时长达 15 分钟,然后又开始动作,然后又卡住了部分堆栈跟踪作为:

 java.lang.Thread.State: RUNNABLE
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(Unknown Source)
    at java.net.SocketOutputStream.write(Unknown Source)
    at java.io.BufferedOutputStream.write(Unknown Source)
    - locked <0xa4ca4660> (a java.io.BufferedOutputStream)
    mypackage.myMethod()
Run Code Online (Sandbox Code Playgroud)

我的直接假设是 ObjectWrite 正在被阻塞。但这种行为充其量是不稳定的。底层网络似乎没问题。在卡住之前,它已经成功写入了几个小时。

在写入下一个块之前,线程还需要至少 50 毫秒的休息时间。那么,如果它不是正常的块,它还能是什么?

堆栈:

ff2cba60 send     (10, 4dc230, c312, 0)
fe03ce58 Java_java_net_SocketOutputStream_socketWrite0 (3a4928, c312, 10, 95f7f890, 0, c312) + 158
fc093e5c * java/lang/System.getSecurityManager()Ljava/lang/SecurityManager;+3
fc08ec3c * *java/net/SocketOutputStream.socketWrite([BII)V [compiled] +45
fc08ec3c * *java/net/SocketOutputStream.write([BII)V+5
fc005ab0 * java/io/BufferedOutputStream.write([BII)V+20
fc005ab0 * mypackage.mymethod()V+84 (line 598)
Run Code Online (Sandbox Code Playgroud)

java networking

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

使用realloc调整缓冲区大小

如果指向的区域被移动,则完成自由(ptr).

你能解释一下上面的一行realloc()吗?这一行来自calloc,malloc,realloc和free的手册页.

c realloc

4
推荐指数
2
解决办法
2899
查看次数

枚举声明出错

我有一个非常简单的c代码:

         #include<stdio.h>
        int main()
        {
          enum boolean{true,false};
          boolean bl=false;
          if(bl==false)
             printf("This is the false value of boool\n");
         boolean bl1=true;
          if(bl1==true)
           {
            printf("This is the true value of boool\n");
           }
    return 0;
   }
Run Code Online (Sandbox Code Playgroud)

我只是尝试使用枚举类型变量.但它给出以下错误:

tryit4.c:5: error: ‘boolean’ undeclared (first use in this function)
tryit4.c:5: error: (Each undeclared identifier is reported only once
tryit4.c:5: error: for each function it appears in.)
tryit4.c:5: error: expected ‘;’ before ‘bl’
tryit4.c:6: error: ‘bl’ undeclared (first use in this function)
tryit4.c:8: error: expected ‘;’ …
Run Code Online (Sandbox Code Playgroud)

c

3
推荐指数
4
解决办法
2万
查看次数

Android字典应用程序

我想在字典之上开发一个应用程序,即一个使用字典作为其一部分的应用程序.它们是否为市场提供了市场上的任何字典应用程序?GPL下的应用程序更可取.还有那些使用本地数据库的应用程序而不是使用网络连接是更可取的.

如果没有,市场上是否有可用的字典数据库,可以开发字典应用程序,然后可以用于上述目的?

希望我很清楚.

提前致谢.

android

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

Guava CacheBuilder删除监听器

请告诉我我遗失的地方.

我在DataPool中有一个CacheBuilder构建的缓存.DataPool是一个单例对象,其实例可以获取各种线程并进行操作.现在我有一个生成数据的线程并将其添加到所述缓存中.

要显示代码的相关部分:

 private InputDataPool(){

    cache=CacheBuilder.newBuilder().expireAfterWrite(1000, TimeUnit.NANOSECONDS).removalListener(
            new RemovalListener(){
                {
                    logger.debug("Removal Listener created");
                }
                                public void onRemoval(RemovalNotification notification) {
                                    System.out.println("Going to remove data from InputDataPool");
                                    logger.info("Following data is being removed:"+notification.getKey());
                                    if(notification.getCause()==RemovalCause.EXPIRED)
                                    {
                                        logger.fatal("This data expired:"+notification.getKey());
                                    }else
                                    {
                                        logger.fatal("This data didn't expired but evacuated intentionally"+notification.getKey());
                                    }

                                }}
                    ).build(new CacheLoader(){

                        @Override
                        public Object load(Object key) throws Exception {
                                logger.info("Following data being loaded"+(Integer)key);
                                Integer uniqueId=(Integer)key;
                                return InputDataPool.getInstance().getAndRemoveDataFromPool(uniqueId);

                        }

                    });
}

public static InputDataPool getInstance(){
        if(clsInputDataPool==null){
            synchronized(InputDataPool.class){
                if(clsInputDataPool==null)
                {
                    clsInputDataPool=new InputDataPool();
                }
            }
        } …
Run Code Online (Sandbox Code Playgroud)

java caching guava

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