小编cha*_*ika的帖子

如何在纪元时创建java.util.Calendar实例?

是否有任何现有的方法可以使用Calendar API在历元记录时填充日历,而不是在epoch中明确设置它们?我所能做的只是获得当前时间.

calendar

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

CopyOnWriteArrayList的行为

Javadocs CopyOnWriteArrayList

ArrayList的线程安全变体,其中通过创建底层数组的新副本来实现所有可变操作(添加,设置等).

我现在很困惑,其他线程何时会看到这个新副本中存在的变化?这是否意味着底层数组的副本数量等于集合的突变数量?如果不是这样,何时将这些单个副本的更改传输到基础数组,以便其他线程可以看到它们?

java collections concurrency data-structures

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

OSGi线程模型

我在互联网上搜索但未能找到满意的答案.OSGi容器中存在什么样的线程模型?它是否只是为每个注册的包生成一个新线程,例如?任何有关线程模型的参考都会很棒.

osgi

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

HTTP服务器如何接受Telnet

据我所知,Telnet是一种协议,与HTTP一样多.我有这样的想法,即在建立初始TCP连接之后,Telnet客户端会将一些特定于telnet的代码发送到另一端的服务器,在这种情况下是HTTP服务器.但由于HTTP服务器不了解Telnet特定代码,它应该抛出错误或丢弃连接等.但实际上,如果我们输入正确的HTTP标头并发送它们,我们可以telnet到HTTP服务器并获取页面.怎么会这样?维基百科条目真的没有帮助我理解这个具体点.(http://en.wikipedia.org/wiki/Telnet#Telnet_data)

telnet

8
推荐指数
2
解决办法
4954
查看次数

pthread_key_create析构函数没有被调用

根据pthread_key_create手册页,我们可以关联在线程关闭时调用的析构函数.我的问题是我注册的析构函数没有被调用.我的代码的要点如下.

static pthread_key_t key;
static pthread_once_t tls_init_flag = PTHREAD_ONCE_INIT;

void destructor(void *t) {
  // thread local data structure clean up code here, which is not getting called
}

void create_key() {
  pthread_key_create(&key, destructor);
}

// This will be called from every thread
void set_thread_specific() {

  ts = new ts_stack; // Thread local data structure

  pthread_once(&tls_init_flag, create_key);
  pthread_setspecific(key, ts);
}
Run Code Online (Sandbox Code Playgroud)

知道什么可能会阻止这个析构函数被调用?我现在也在使用atexit()来在主线程中进行一些清理.有没有机会干扰被调用的析构函数?我也尝试删除它.虽然仍然没有奏效.另外我不清楚我是否应该将主线程作为atexit的单独案例来处理.(顺便说一下,使用atexit是必须的,因为我需要在应用程序出口处进行一些特定于应用程序的清理)

c++ shutdown pthreads thread-specific-storage

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

用于访问hive serde的登录的正则表达式

我想从访问日志中提取出(ip,requestUrl,timeStamp)以加载到hive数据库.访问日志中的一行如下.


66.249.68.6 - - [14/Jan/2012:06:25:03 -0800] "GET /example.com HTTP/1.1" 200 708 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

我尝试使用以下几种正则表达式而没有任何成功.(加载的表包含所有NULL值,表示正则表达式与输入不匹配).


CREATE TABLE access_log (
  remote_ip STRING,
  request_date STRING,
  method STRING,
  request STRING,
  protocol STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES  (
"input.regex" = "([^ ]) . . [([^]]+)] \"([^ ]) ([^ ]) ([^ \"])\" *",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s"
)
STORED AS TEXTFILE;

我对正则表达式不是很有经验.任何人都可以帮我吗?

regex hive

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

在Cassandra中获取具有公共前缀的键范围

我想使用hector API获取具有公共前缀的所有行.我使用了RangeSuperSlicesQuery,但没有找到让它正常工作的方法.关键范围参数是否适用于外卡等?

更新:我使用ByteOrderedPartitioner而不是RandomPartitioner,它可以正常工作.这是预期的行为吗?

cassandra hector

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

如何使用内联汇编访问堆栈基础指针(rbp)?

我的要求是通过使用内联汇编偏移rbp来访问函数调用参数。但是我找不到合适的操作数约束来指定x86中的基本指针。我使用的是Intel编译器,但文档说明它支持GCC样式内联汇编。因此,基于GCC的示例就足够了。

assembly inline-assembly icc

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

具有 64 位立即值的长模式(64 位)相对调用

是否可以?英特尔文档称操作码 E8 可以与相对位移值一起使用。

E8 cd 调用 rel32

“调用近、相对、相对于下一条指令的位移。在 64 位模式下,32 位位移符号扩展到 64 位。”

这是否意味着只允许 32 位位移?我对这里的措辞很不清楚。

c assembly x86-64 intel

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

from_raw_parts_mut如何在不同大小的类型之间进行转换?

我正在看代码from_raw_parts_mut:

pub unsafe fn from_raw_parts_mut<'a, T>(p: *mut T, len: usize) -> &'a mut [T] {
    mem::transmute(Repr { data: p, len: len })
}
Run Code Online (Sandbox Code Playgroud)

它用于transmute将a重新解释Repr为a &mut [T].据我所知,Repr是一个128位结构.这种不同大小的类型的转换是如何工作的?

rust

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

STL映射自定义比较器

我试图使用用户定义的类型作为具有自定义比较器的映射键,如下所示.

#include <map>
#include <iostream>

class RangeKey {
  public:
    int start;
    int end;

    RangeKey(int start, int end) : start(start), end(end) {

    }

    bool withinRange(int value, bool inclusive) const {
      if (inclusive) {
        return (value >= start && value <= end);
    } else {
      return (value > start && value < end);
    }
  }

  bool overlapsWith(const RangeKey& r) const {
    if (r.withinRange(start, true) ||
        r.withinRange(end, true) ||
        (start < r.start && end > r.end)) {
      return true;
    }
    return false;
  } …
Run Code Online (Sandbox Code Playgroud)

c++ stl

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